目录
4.1 创建数据表
4.1.1 创建表的语法形式
【指定使用的数据库】
CREATE DATABASE test_db;
USE test_db;
【创建员工表tb_emp1】
CREATE TABLE tb_emp1
(
id INT(11),
name VARCHAR(25),
deptId INT(11),
salary FLOAT
);
【显示当前使用的数据库中的所有表】
SHOW TABLES;
4.1.2 使用主键约束
【创建表时,单一字段作为主键】
CREATE TABLE tb_emp2
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT
);
CREATE TABLE tb_emp2
(
id INT(11),
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
PRIMARY KEY(id)
);
【创建表时,多字段作为主键】
CREATE TABLE tb_emp4
(
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
PRIMARY KEY(name,deptId)
);
4.1.3 使用外键约束
外键用来在两个表的数据之间建立连接,它可以时一列或多列。一个表可以有一个或多个外键。外键对应的参照完整性,一个表的外键可以位空值,若不为空值,则每一个外键值必须等一另一个表中主键的某个值。
外键:首先它是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键主要作用时保证数据引用的完整性,定义外键后,不预序删除在另一个表中具有关联关系的行。外键的作用时保持数据的一致性、完整性。
- 主表(父表):对于两个就对关联关系的表而言,相关联字段中主键所在的那个表即是主表。
- 从表(子表):对于两个就对关联关系的表而言,相关联字段中外键所在的那个表即是主表。
【创建外键】
表【tb_emp5】的列【deptId】作为外键关联到【tb_dept1】的主键 【id】
CREATE TABLE tb_dept1
(
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
);
CREATE TABLE tb_emp5
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
);
4.1.4 使用非空约束
CREATE TABLE tb_emp6
(
id INT(11) PRIMARY KEY,
name VARCHAR(25) NOT NULL,
deptId INT(11),
salary FLOAT
);
4.1.5 使用唯一性约束
UNIQUE和PRIMARY KEY的区别:一个表中可以有多个字段声明位UNIQUE,但只能又一个PRIMARY KEY声明。声明为PRIMARY KEY的列不允许又空值,但是声明为UNIQUE的字段允许空值(NULL)的存在。
CREATE TABLE tb_dept2
(
id INT(11) PRIMARY KEY,
name VARCHAR(22) UNIQUE,
location VARCHAR(50)
);
CREATE TABLE tb_dept3
(
id INT(11) PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50),
CONSTRAINT STH UNIQUE(name)
);
4.1.6 使用默认约束
CREATE TABLE tb_emp7
(
id INT(11) PRIMARY KEY,
name VARCHAR(25) NOT NULL,
deptId INT(11) DEFAULT 1111,
salary FLOAT
);
4.1.7 设置表的属性值自动增加
一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型
CREATE TABLE tb_emp8
(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(25) NOT NULL,
deptId INT(11),
salary FLOAT
);
4.2 查看数据表的结构
4.2.1 查看表基本结构
DESCRIBE tb_dept1;
DESC tb_emp1;
4.2.2 查看表详细结构语句
SHOW CREATE TABLE tb_emp1;
SHOW CREATE TABLE tb_emp1 \G **\G表示显示结构更直观
4.3 修改数据表
4.3.1 修改表名
ALTER TABLE tb_dept3 RENAME TO tb_deptment3;
4.3.2 修改字段的数据类型
ALTER TABLE tb_dept1 MODIFY name VARCHAR(30);
4.3.3 修改字段名
ALTER TABLE tb_dept1 CHANGE location loc VARCHAR(50);
ALTER TABLE tb_dept1 CHANGE loc location VARCHAR(60);
4.3.4 添加字段
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;
4.3.5 删除字段
ALTER TABLE tb_dept1 DROP column2;
4.3.6 修改字段的排列位置
ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) FIRST;
ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) AFTER location;
4.3.7 更改表的存储引擎
ALTER TABLE tb_deptment3 ENGINE=MyISAM;
4.3.8 删除表的外键约束
CREATE TABLE tb_emp9
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
);
ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;
4.4 删除数据表
4.4.1 删除没有被关联的表
DROP TABLE IF EXISTS tb_dept2;
4.4.2 删除被其他表关联的主表
CREATE TABLE tb_dept2
(
id INT(11) PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50)
);
CREATE TABLE tb_emp
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept2(id)
);
ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_dept;
DROP TABLE tb_dept2;
本文全面介绍了SQL中数据表的操作,包括创建、查看、修改和删除数据表的方法,以及如何使用各种约束如主键、外键、非空、唯一性和默认值来确保数据的完整性和一致性。
1986

被折叠的 条评论
为什么被折叠?



