MySQL中一些常用的数据表操作语句笔记
0.创建表
CREATETABLE表名(属性名数据类型[完整性约束条件], 属性名数据类型[完整性约束条件], 属性名数据类型[完整性约束条件])
“完整性约束条件”是指指定某些字段的某些特殊约束条件。
在使用CREATETABLE创建表时首先要使用USE语句选择数据库。比如有个example数据库,用USEEXAMPLE选择这个数据库。
表名不能用SQL的关键字,如create,update等,字母不区分大小写。
下面是一个创建表的例子:
createtableexample(idint,namevarchar(20),sexboolean);
上例创建了example表,有三个字段,id整型,name字符串型,sex布尔型。
完整性约束条件是对字段进行限制。如果不满足完整性约束条件,数据库系统将不执行用户的操作,保护了数据库中数据的完整性。
下面是完整性约束条件:
- PRIMARYKEY标识该属性为该表的主键,可以唯一的标识对应的元组
- FOREIGNKEY标识该属性为该表的外键,是与之联系的某表的主键
- NOTNULL标识该属性不能为空
- UNIQUE标识该属性的值是唯一的
- AUTO_INCREMENT标识该属性的值自动增加
- DEFAULT为该属性设置默认值
1.查看表结构
describe表名
describe可简写为desc。
describe语句可以查看表的基本的定义。包括字段名field,字段数据类型type,是否为空null,是否为主外键key,默认值default和额外信息extra。
2.查看表详细结构
showcreatetable表名 showcreatetable表名\G
\G增强显示可查看性
showcreatetable
语句可以查看表字段,各字段数据类型,完整性约束条件,标的存储引擎,字符编码等.
3.修改表名
altertable旧表名rename[to]新表名;
4.修改字段的数据类型
altertable表名modify属性名数据类型;
5.修改字段名
altertable表名change旧属性名新属性名新数据类型;
旧属性名参数指修改前的字段名,新属性名参数指修改后的字段名,如果不指定数据类型则数据类型不变。
6.增加字段
altertable表名add属性名1数据类型[完整性约束条件][first]after属性名2;
first可选项指此字段为表的第一个字段,after属性名2指放在指定字段后面,默认最后一位。
7.删除字段
altertable表名drop属性名;
8.删除关联表
(1)删除表的外键约束
外键是一个特殊字段,其将某一个表与其父表建立关联关系。在创建表的时候,外键约束就已经设定好了。去掉他们之间的关联关系需要用到下面语句。
altertable表名dropforeignkey外键别名;
外键别名参数指创建表时设置的外键代号。
(2)删除没有被关联的普通表
droptable表名;
删除一个表时,表中的所有数据也会被删除。删除表时最好先将表中的数据备份一下。
(3)删除被其他表关联的父表
当删除有关联关系的表时,用droptableexample1会报错,原因是有外键依赖于该表
例如创建了一个example4表依赖于example1表,example4表的外键stu_id依赖于example1表的主键。example1表时example4表的父表。
如果要删除example4表,必须先去掉这种依赖关系。最简单的办法是先删除子表example4,然后删除父表example1。但这样可能会影响子表的其他数据。
另一种方法是先删除子表的外键约束,然后删除父表。这种方法不会影响子表的其他数据,可以保证数据库的安全。
比如,example4表的外键别名是d_fk,删除example4的外键约束
altertableexample4dropforeignkeyd_fk;
。
可以通过showcreatetableexample4\G来查看是否已删除。
然后再执行
droptableexample1;
.
执行成功则表示操作成功。