一、数据表:
1.定义
数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。
2.操作
⑴创建数据表:
(注)实体完整性、引用完整性和域完整性;在创建数据表前必须有数据库且要指定数据库,例如创建test_db数据库的语句是CREATE DATABASE test_db;
,指定数据库的语句是USE test_db;
。
①创建数据表的语句
②约束(注意:后面几个约束比较重要,且让表更加方便)
Ⅰ添加主键约束:
主键定义:主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。
Ⅱ添加外键约束:
外键定义:外键用来在两个表的数据之间建立连接,可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。
外键的作用:保持数据的一致性、完整性。主表(父表)定义:对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。
从表(子表)定义:对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。
Ⅲ添加唯一性约束:
唯一性约束定义:要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。
UNIQUE和PRIMARY KEY的区别:
一个表中可以有多个字段声明为UNIQUE,但只能有一个PRIMARY KEY声明;声明为PRIMAY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在。Ⅳ添加默认约束:
默认约束(Default Constraint)指定某列的默认值。如男性同学较多,性别就可以默认为‘男’。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为‘男’。
Ⅴ属性值自动递增:
属性值的数据类型:可以是任何整数类型(TINYINT、SMALLIN、INT、BIGINT等)。
插入新的记录时,不需要写id,也不需要插入id的值,由系统自动生成。
mysql> INSERT INTO tb_emp8 (name,salary)
-> VALUES('Lucy',1000), ('Lura',1200),('Kevin',1500);
⑵修改数据表:
修改表名:
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
修改表的存储引擎:
ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;
ALTER TABLE tb_deptment3 ENGINE=MyISAM;
修改字段:
①添加字段
管理员赐予用户一些记录的方法
“FIRST”或“AFTER已存在字段名”用于指定新增字段在表中的位置,如果SQL语句中没有这两个参数,则默认将新添加的字段设置为数据表的最后列。
ALTER TABLE tb_dept1 ADD managerId INT(10);
ALTER TABLE tb_dept1 ADD column1 VARCHAR(12) not null;
ALTER TABLE tb_dept1 ADD column2 INT(11) FIRST;
ALTER TABLE tb_dept1 ADD column3 INT(11) AFTER name;
②删除字段
ALTER TABLE <表名> DROP <字段名>;
ALTER TABLE tb_dept1 DROP column2;
③修改字段
修改字段名和数据类型:
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
(没有写数据类型就说明不需要修改)
ALTER TABLE tb_dept1 CHANGE loc location VARCHAR(60);
修改数据类型:
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
ALTER TABLE tb_dept1 MODIFY name VARCHAR(30);
修改字段位置:
ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>;
ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) FIRST;
⑶删除数据表:
DROP TABLE [IF EXISTS]表1, 表2,…表n;
DROP TABLE IF EXISTS tb_dept2;