创建成绩表:create table tb_score(sID int, cID int, score float, primary key(sID,cID), constraint fk_student foreign key(sID) references tb_student(id), constraint fk_course foreign key(cID) references tb_course(id));
使用非空约束:非空约束指字段的值不为空,对于指定非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。约束规则为:字段名 数据类型 not null,语句:create table user2(id int primary key, name varchar(20) not null);
使用唯一性约束:唯一性约束要求该列唯一,允许为空,但只能出现一个空值,唯一性约束可以确保一列或者几列不出现重复值。约束规则:字段名 数据类型 unique,语句:create table user3(id int primary key, name varchar(22) unique);一个表中可以有多个字段声明为unique,但只能有一个为primary key,primary key的列不允许为空,而unique可以存在一个null。
使用默认约束:指定某列的默认值。默认约束的语法规则:字段名 数据类型 default 默认值,默认约束语句:create table user4(id int primary key, name varchar(22), salary float default 3000.00);指定员工默认薪水为3000元。
设置表的属性值自动增加,通过为表的主键添加auto_increment关键字来实现。默认mysql中auto_increment的初始值为1,每增加一条新记录,字段值自动加1,一个表只能有一个字段使用auto_increment约束,且该字段必须为主键的一部分。auto_increment约束的字段可以是任何整数类型(tinyint、smallint、int、bigint等)。语法规则:字段名 数据类型 auto_increment。sql语句:create table user5(id int primary key auto_increment, name varchar(20), salary float);
查看数据表结构使用sql语句创建数据库表之后,可以查看表结构的定义,以确认表的定义是否正确,在mysql中可以使用describe和show create table语句,本节将对两个语句分别进行介绍。
查看表基本结构语句describe
describe 表名;或者desc 表名;
Null:表示该列是否可以存储null值
key:表示该列是否已编制索引,PRI表示该列是表主键的一部分,MUL表示在列中某个给定值允许出现多次
Default:如果该字段为null,表示该没有默认值
Extra:表示可以获取的与给定列有关的附加信息,例如auto_increment等。
查看表详细结构语句show create table
语法格式:show create table 表名\G;
修改数据表
修改表是指修改数据库中已经存在的数据表的结构。mysql使用alter table语句修改表。常用的修改表操作有:修改表名、修改字段数据类型、或字段名、增加或删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。本节将对和修改表相关的操作进行说明。
修改表名
mysql通过alter table语句来实现表名的修改,具体语法规则:alter table <旧表名> rename [to] <新表名>;其中to为可选参数。
修改字段的数据类型
把字段的数据类型转换成另一种数据类型,mysql中的语法规则:alter table <表名> modify <字段名> <数据类型>;
修改字段名
mysql中修改字段名的语法规则为:alter table <表名> change <旧字段名><新字段名><新数据类型>;其中旧字段名指修改前的字段名,新数据类型为修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成原来一样即可,但数据类型不能为空。同时需要注意该语句不能修改主键的字段名。
添加字段