一、数据表:

1.定义

数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。

2.操作

⑴创建数据表:

(注)实体完整性、引用完整性和域完整性;在创建数据表前必须有数据库且要指定数据库,例如创建test_db数据库的语句是CREATE DATABASE test_db;,指定数据库的语句是USE test_db;

①创建数据表的语句

mysql 语法chm 下载 mysql8语法_mysql 语法chm 下载

②约束(注意:后面几个约束比较重要,且让表更加方便)

Ⅰ添加主键约束:

主键定义:主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。

mysql 语法chm 下载 mysql8语法_字段_02


mysql 语法chm 下载 mysql8语法_mysql 语法chm 下载_03


mysql 语法chm 下载 mysql8语法_外键_04


Ⅱ添加外键约束:

外键定义:外键用来在两个表的数据之间建立连接,可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。

外键的作用:保持数据的一致性、完整性。主表(父表)定义:对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。

mysql 语法chm 下载 mysql8语法_表名_05


从表(子表)定义:对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。

mysql 语法chm 下载 mysql8语法_外键_06


Ⅲ添加唯一性约束:

唯一性约束定义:要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。

mysql 语法chm 下载 mysql8语法_字段_07


mysql 语法chm 下载 mysql8语法_外键_08


UNIQUE和PRIMARY KEY的区别:

一个表中可以有多个字段声明为UNIQUE,但只能有一个PRIMARY KEY声明;声明为PRIMAY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在。Ⅳ添加默认约束:

默认约束(Default Constraint)指定某列的默认值。如男性同学较多,性别就可以默认为‘男’。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为‘男’。

mysql 语法chm 下载 mysql8语法_外键_09


Ⅴ属性值自动递增:

属性值的数据类型:可以是任何整数类型(TINYINT、SMALLIN、INT、BIGINT等)。

插入新的记录时,不需要写id,也不需要插入id的值,由系统自动生成。

mysql 语法chm 下载 mysql8语法_字段_10

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;

mysql 语法chm 下载 mysql8语法_mysql 语法chm 下载_11

②删除字段

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;