2.创建、修改和删除数据表
创建数据表
创建数据表,是指在创建好的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)的约束过程。
创建表的语法形式
数据表属于数据库,在创建数据表之前,应该使用“USE <数据库名> ”指定操作是在那个数据库中进行,如果没有选择数据库,会出现No database selected的错误。
创建数据表的语句为CREAT TABLE,语法规则如下:
CREATE TABLE <表名>
(
字段名1,数据类型[列级别约束条件][默认值]
字段名2,数据类型[列级别约束条件][默认值]
...
[表级别约束条件]
);
例:创建员工表tb_emp1,结构表如下表所示:\
字段名称 | 数据类型 | 备注 |
---|---|---|
id | INT(11) | 员工编号 |
name | VARCHAR(25) | 员工名称 |
deptID | INT(11) | 所在部门编号 |
salary | FLOAT | 工资 |
首先创建数据库,语句如下:
CREAT DATABASE test_db;
选择创建表的数据库,使用的SQL语句如下:
USE test_db;
创建tb_emp1表:
CREATE TABLE tb_emp1
(
id INT(11),
name VARCHAR(25),
deptID INT(11),
salary FLOAT
);
上述语句执行后,便创建了一个名称为tb_emp1的数据表,可以使用SHOW TABLES语句查看数据表是否创建成功:
使用主键约束
主键,又称主码,是表中一列或多列的组合。主键约束(Primary Key Constraint)要求主键列的数据要唯一,并且不允许为空。主键能够唯一的标识表中的一条记录可以结合外键来定义不同数据表之间的关系,并且可以加快查询数据库的速度。主键和记录之间的关系如同身份证和人之间的关系,他们之间是一一对应的。主键分为两种类型:单字段主键和多字段联合主键。
1.单字段主键
主键由一个字段组成,SQL语句格式分为以下两种情况。
- 在定义列的同时指定主键:
字段名 数据类型 PRIMARY KEY [默认值]
例:定义数据表tb_emp2,其主键为id,SQL语句如下:
CREATE TABLE tb_emp2
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptID INT(11),
salary FLOAT
);
- 在定义完所有列之后指定主键:
[CONSTRAINT] <约束名> PRIMARY KEY [字段名]
例:定义数据表tb_emp3,其主键为id,SQL语句如下:
mysql> use test_Db
Database changed
mysql> CREATE TABLE tb_emp3
-> (
-> id INT(11),
-> name VARCHAR(25),
-> deptID INT(11),
-> salary FLOAT,
-> PRIMARY KEY(id)
-> );
Query OK, 0 rows affected (0.59 sec)
上述两个例子执行后的结果都是一样的,都会在id字段上设置主键约束。
2.多字段联合主键
主键是由多个字段联合组成,语法规则如下:
PRIMARY KEY [字段1,字段2,...,字段n]
例:定义数据表tb_emp4,假设表中间没有主键id,为了唯一确定一个员工,可以把name、deptID、联合起来作为主键,SQL语句如下:
mysql> CREATE TABLE tb_emp4
-> (
-> name VARCHAR(25),
-> deptID INT(11),
-> salary FLOAT,
-> PRIMARY KEY(name,deptID)
-> );
Query OK, 0 rows affected (0.29 sec)
语句执行后,变创建了一个名称为tb_emp4的数据表,name字段和deptID字段组合在一起称为tb_emp4的多字段联合主键。
3.使用外键约束
外键用来在两个表的数据之间建立连接,他可以是一列或者多列。一个表可以有一个或者多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。
外键:首先它是表中的一个字段,它可以不是本表的主键,但对应另一个表的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。例如,部门表中tb_dept1的主键是id,在员工表tb_emp5中有一个键deptID与这个键关联.
主表(父表):对于具有关联关系的两个表而言,相关联字段中主键所在的那个表为主表。
从表(子表):对于具有关联关系的两个表而言,相关联字段中外键所在的那个表为从表。
创建外键的语法规则如下:
[CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [,字段名2,...]
REFERENCES <主表名> 主键列1 [,主键列2,...]
“外键名”为定义的外键约束的名称,一个表中不能有相同名称的外键;“字段名”表示字表需要添加外键约束的字段列;“主表名”即被字表外键所依赖的表的名称;“主键列”表示主表中定义的主键列,或者列组合。