MySQL表定义与完整性约束控制——学习笔记
数据表是数据库中最重要、最基本的操作对象,是数据库基本的存储单位。
表中每一行代表一条唯一的记录,每一列(字段)代表记录中的一个域。
一、数据表的操作
1、创建数据表
创建一个表名为stu1的数据表,里面含有学生编号、学生姓名、学生性别、专业四个字段。
mysql> create table stu1( -> sno varchar(20) not null, -> sname varchar(20) not null, -> ssex enum('男','女') not null, -> zno varchar(4) not null, -> primary key(sno) -> ) -> engine=innoDB default charset=utf8 collate=utf8_bin;
其中,primary key 表示主键,engine为设置表的存储引擎,default charset 为设置表的字符集,collate为设置压缩索引关键字。
2、查看数据表结构
1)查看表的名称
show tables;
2)显示表的结构(3种)
desc stu1;
describe stu1;
show create table stu1;
3、修改数据表
1)修改数据表名,将stu1表改为stu。
alter table stu1 rename stu;
2)修改字段数据类型,将原来的varchar(20)修改为varchar(30),利用modify关键字。
alter table stu modify sname varchar(30);
3)修改字段名,将ssex改为sex。
alter table stu change ssex sex varchar(4);
4)添加数据表字段,添加了一个sbirth字段,类型是date。
alter table stu add sbirth date not null;
5)删除字段,删除zno字段。
alter table stu drop zno;
6)修改字段排序,将sex放在sbirth的后面。
alter table stu modify sex varchar(4) after sbirth;
7)更改表的存储引擎,将原来的innoDB改为myisam。
alter table stu engine=myisam;
8)删除表中的外键约束
alter table stu drop foreign key zno;
4、复制数据表
1)复制一个stu2表
create table stu2 like stu;
2)选择stu中的某些字段复制成stu3表。
create table stu3 as select sno,sname from stu;
5、删除数据表
drop table if exists stu2,stu3;
6、注意事项
1)null值和空字符是不一样的
2)长度小于4的varchar类型会被改变为char类型