mysql的数据表操作

来源:互联网 发布:两性情趣软件 编辑:程序博客网 时间:2024/05/17 03:42

1、创建数据表

在创建数据表之前,要用use <数据库名>指定在哪个数据库中操作。

1.1创建表的语法格式

创建数据表语句为,其中[]中的表示可选

create table <表名>

(

字段名1数据类型 [列级别约束条件] [默认值],

字段名2数据类型 [列级别约束条件] [默认值],

表级别约束条件

)

注意:

(1)表名不区分大小写,表名不能用mysql中的关键字,如drop, alter, insert

(2)列需要指定字段名和数据类型,列之间用逗号分隔。

1.2使用主键约束

主键是表中一列或者多列的组合,主键约束要求主键列的数据唯一,并且不能为空。主键能够唯一标志表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且加快数据库的速度。主键分为单字段主键和多字段主键。

1.2.1单字段主键

主键由一个字段组成。语法格式分为两种

(1)在定义列的同时指定主键

字段名数据类型 PRIMARY KEY [默认值]

(2)在定义完所有列后再指定主键。

[constraint <约束名>]primary key(字段名)

1.2.2多字段主键

主键由多个字段组成,语法格式为:

primary key(字段1,字段2,…,)

1.3使用外键约束

外键用来在两个数据表中建立连接,可以是一列或者是多列。一个表中可以有多个外键。外键可以为空值,如果不为空,则必须是另一个表中主键的某个值。

外键首先是表中的一个字段,可以不是本表的主键,但对应另外一个表的主键。

主表(父表):对于两个有关联关系的表而言,相关联字段中主键所在的表为主表。

从表(子表):对于两个有关联关系的表而言,相关闻字段外键所在的表为从表。

创建外键的语法

[constraint <外键名>]foreign key字段名1 [,字段名2,…] references<主表名>主键列1[,主键列2,…]

注意:表中不能有相同名字的外键。

数据类型要一致

1.4使用非空约束

非空约束指字段的值不能为空。对于非空约束的字段,如果在添加数据时没有指定,系统会报错。语法格式为

字段名数据类型not null

1.5使用唯一性约束

唯一性约束要求该列唯一,允许为空,但是只能出现一个空值。可以确保一列或者几列不出现重复值

语法格式有两种

(1)在定义完列之后直接指定唯一性约束

   字段名数据类型 UNIQUE

(2)在定义完所有列之后,指定唯一性约束

   constraint <约束名> unique(字段名)

uniqueprimary key的区别:一个表中可以有多个字段声明为unique,但只能有一个primary key声明,声明为primary key的列不能为空,声明为unique的列可以为空。

1.6使用默认约束

默认约束指定某列的默认值。语法为:

  字段名数据类型 default默认值




2、查看数据表结构

2.1查看表基本结构语句describe

describe/desc语句用来查看表的字段信息,其中包括:字段名,字段数据类型,是否为空,是否有默认值等。语法为:

    describe表名 或者 desc表名

2.2查看表详细结构语句show createtable

用来显示创建表时的语句。语法格式为

   show create table <表名>


3、修改数据表

3.1修改表名

   语法格式:alter table <旧表名> rename [to] <新表名>

3.2修改字段的数据类型

   语法格式:alter table <表名> modify <字段名> <数据类型>

3.3修改字段名

   语法格式:alter table <表名> change <字段名> <新字段名> <新数据类型>

3.4添加字段

   语法格式:alter table <表名> add <字段> [约束条件] [first | aflter已存在字段名]

3.5删除字段

   语法格式:alter table <表名> drop字段名

3.6修改字段的排列位置

   语法格式:alter table <表名> modify <字段1> <数据类型> first | after <字段2>

3.7修改表的存储引擎

   语法格式:alter table <表名> engine = <新存储引擎>

3.8删除外键

   语法格式:alter table <表名> drop foreign key <外键约束名>



4、删除数据表

4.1删除没有关联的表

删除表可以一次删除一个或者多个,语法为:

     drop table [if exists]1,表2n;

4.2删除有关联的表

  先删除子表的外键,危险主表和从表的关系后,接着删除主表。












0 0
原创粉丝点击