目录
1、创建表
2、查看表结构
2.1 describe
2.2 show create table
3、删除表
4、修改表
4.1 修改表名
4.2 增加字段
4.3 删除字段
4.4 修改字段
5、完整性约束条件
5.1 设置表字段的非空约束(NOT NULL,NK)
5.2 设置表字段默认值(default)
5.3 设置表字段唯一约束(unique,uk)
5.4 设置表字段主键约束(primary,pk)
5.5 设置表字段值自动增加(auto_increment)
5.6 设置表字段的外键约束(foreign key,fk)
例:在数据库中创建名为t_test表。
mysql> use fan; Database changed mysql> create table -> t_test(classno int,cname varchar(20),loc varchar(20)); Query OK, 0 rows affected (0.47 sec)查看表结构是指查看数据库中已经存在的表的定义。
查看表结构的语句包括:describe和show create table
field:名称
type:数据类型
null:是否为空
key:是否为主外键
default:默认值
extra:额外信息
看出存储引擎为:innodb;
字符编码:utf8mb4;
删除表是指删除数据库中已经存在的表。
删除表的时候回删除表中全部信息。
使用drop table 语句删除没有被关联的普通表。
mysql> drop table t_test;语法格式:
alter table oldTablename rename newTablename;oldTablename:所要修改表的名字;
newTablename:参数表示修改后的新表名;
要操作的对象必须在数据库中存在。
例:修改数据库fan中t_test表的名称为tt_test;
mysql> alter table t_test rename tt_test;字段就是表中的列,是由字段名和数据类型进行定义的。
语句1:
alter table tablename add propname proptype;tablename:表示所要修改表的名字;
propname:参数所要增加字段的名称;
proptype:所要增加字段存储数据的数据类型;
例: 查看已经存在表:
mysql> describe tt_test; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | classno | int | YES | | NULL | | | cname | varchar(20) | YES | | NULL | | | loc | varchar(20) | YES | | NULL | | +---------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)增加一个名为fan1的字段:
mysql> alter table tt_test add fan1 varchar(20);查看表定义:
mysql> describe tt_test; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | classno | int | YES | | NULL | | | cname | varchar(20) | YES | | NULL | | | loc | varchar(20) | YES | | NULL | | | fan1 | varchar(20) | YES | | NULL | | +---------+-------------+------+-----+---------+-------+ 4 rows in set (1.57 sec)语法2:
alter table tablename add propname proptype first;first:表示字段在表中第一个位置;
语法3:
alter table tablename add pnamenew proptype after pnameold;pnameold:已经存在的字段名;
pnamenew:参数表示新增的字段名;
after:把pnamenew的位置将在pnameold之后;
语法格式为:
alter table tablename drop propname;tablename:参数所要修改表的名字;
propname:删除字段的名字;
语句1:修改字段类型
alter table tablename modify propname proptype;tablename:表示表的名称;
propname:所修改字段的名称;
proptype:为字段propname修改后的类型;
语句2:修改字段名称
alter table tablename change pnameold pnamenew ptypeold;tablename:表示表的名称;
pnameold:参数为修改字段的名称;
pnamenew:修改后的字段名;
ptypeold为字段pnameold数据类型;
语法3:同时修改字段名称和类型
alter table tablename change pnameold pnamenew ptypenew;语法4:修改字段顺序
alter table tablename modify pnamel proptype first|after pname2;pname1:参数为调整顺序的字段名称。
first:表示第一个位置;
after pname2:表示将字符段调整到pname2字段位置之后;
注意:
field:名称
type:数据类型
null:是否为空
key:是否为主外键
default:默认值
extra:额外信息
当数据库表中某个字段上的内容不希望设置为null时,可以使用NK约束进行设置,保证所有记录中该字段都有值。
创建表格f_3:
mysql> create table f_3( -> num1 int not null, -> num2 int, -> name varchar(20)); Query OK, 0 rows affected (0.97 sec)查看表信息:
创建表f_4:
mysql> create table f_4( -> no int not null, -> name varchar(20) default 'f4'); Query OK, 0 rows affected (2.25 sec)查看信息:
当数据库表中某个字段上的内容不允许重复时,可以使用UK约束进行设置。
创建表f_5:
mysql> create table f_5( -> num1 int not null, -> num2 int unique, -> name varchar(20)); Query OK, 0 rows affected (2.36 sec)查看表信息:
主键是表的一个特殊字段,能唯一标识该表中的每条信息。
设置主键是指在创建表时设置表的字段为该表的主键。
主键必须满足条件是必须唯一。
主键可以是单字段主键,也可以是多字段的组合。
单字段主键:
创建表f_6:
mysql> create table f_6( -> num1 int primary key, -> num2 int, -> name varchar(20)); Query OK, 0 rows affected (2.09 sec)检验具有单一主键的表:
多字段主键:
创建设置联合主键的表:
mysql> create table f_7( -> num1 int, -> num2 int, -> name varchar(20), -> constraint pk_num1_num2 primary key(num1,num2)); Query OK, 0 rows affected (0.91 sec)查看f_7信息:
创建表f_8:
mysql> create table f_8( -> num1 int primary key auto_increment, -> num2 int, -> name varchar(20)); Query OK, 0 rows affected (2.25 sec)查看表:
外键是表的一个特殊字段,外键约束是为了保证多个表之间的参照完整性。
设置外键约束的两个表之间具有父子关系,即字表中某个字段的取值范围由父表决定。
在具体设置fk约束时,设置fk约束的字段必须依赖于数据库中已经存在的父表的主键,同时外键可以为空。
创建和查看表f_9:
创建和查看表f_10:
在具体设置外键时,子表f_10中所设外键字段的数据类型必须与父表f_9中所参考的字段数据类型一致。