目录
一、查看表和查看表的定义
SHOW TABLE 表名 DESC 表名; DESCRIBE 表名
二、删除表
DROP TABLE [IF EXISTS ] 表名;
如果表USER存在,删除表USER
DROP TABLE IF EXISTS USER;
三、创建表
CREATE TABLE [ IF NOT EXISTS ] `表名` ( `字段名1` 列类型 [ 字段属性 | 约束] [ 索引 ] [注释] , `字段名2` 列类型 [ 字段属性 | 约束] [ 索引 ] [注释] , … … `字段名n` 列类型 [字段属性 | 约束] [ 索引 ] [注释] ) [ 表类型 ] [ 表字符集 ] [注释] ;
四、表类型
使用MyISAM: 节约空间及相应速度,适合以访问为主的应用。
使用InnoDB: 安全性,事务处理及多用户操作数据表。
五、修改表
//修改表名 ALTER TABLE 旧表名 RENAME AS 新表名 //添加字段 ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ] // 修改列的数据类型 ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ] //修改列的数据类型及名称 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ] //删除字段 ALTER TABLE 表名 DROP 字段名
六、完整性
数据完整性 = 数据的精确性 + 数据的可靠性
1、数据完整性
1.实体完整性
保证表中所有的行唯一
2.域完整性
数据库表中的列必须满足某种特定的数据类型或约束 取值范围 精度
3.引用完整性
保证主关键字 //被引用表 \ 和外部关键字 //引用表\ 之间的参照关系
涉及两个或两个以上表数据的一致性维护
2、使用约束实现数据完整性
3、在数据表上添加约束
//设置唯一约束 ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名); //主键 //如果两列或多列组合起来唯一地标识表中的每个行,则该主键叫做“复合主键” ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(列名1,列名2,…列名n); //设置外键约束 ALTER TABLE 从表名 ADD CONSTRAINT 约束名 FOREIGN KEY(从表的列名) REFERENCES 主表名(主表的列名)
设置外键约束的注意事项:
1.主表中的字段必须为主键。
2.从表中的外键列和主表中的主键列的数据类型要保持一致,和字段名无关。
3.主表和从表的表类型为InnoDB。
4、删除约束
//删除主键约束 ALTER TABLE 表名 DROP PRIMARY KEY; //删除唯一约束 ALTER TABLE 表名 DROP KEY 唯一约束名; //删除外键约束 ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;
七、添加数据
//插入单行数据 INSERT INTO 表名 [ ( 字段1, 字段2, 字段3, … ) ] VALUES ( 值1, 值2, 值3, …); //插入多行数据 INSERT INTO 表名 [ ( 字段1, 字段2, 字段3, … ) ] VALUES ( 值1, 值2, 值3, …),( 值1, 值2, 值3, …),…; //将查询结果插入到新表中 CREATE TABLE 新表名 ( SELECT 字段1, 字段2, 字段3, … FROM 原表)
八、修改数据
UPDATE 表名 SET column_name = value [ , column_name2 = value2, …. ] [ WHERE condition ]; //1.column_name 为要更改的字段名。 //2.value 为修改后的数据,可以为变量、具体值、表达式或者嵌套的SELECT结果。 //3.多个字段之间用逗号隔开。 //4.提供的修改数据必须符合数据完整性的要求。 //5.condition为筛选条件,如不指定则修改该表的所有列数据。
九、删除数据
DELETE FROM 表名 [ WHERE condition ]; //1.DELETE语句删除的是整条记录,不会只删除单个列。 //2.condition为筛选条件,如不指定则修改该表的所有列数据。
TRUNCATE TABLE 表名; //1.TRUNCATE TABLE 删除表中所有的行。 //2.TRUNCATE TABLE不能用于有外键约束引用的表。 //3.同时删除MySQL内的计数器,即自动增加的计数器