作者在 2021-06-15 09:12:04 发布以下内容
#1.创建数据库
CREATE DATABASE company;
#2.选中操作的数据库
USE company;
#3.删除数据库
DROP DATABASE company;
#1.创建数据库表
#最基本的建表:
CREATE TABLE emp (
emp_id INT,
e_name VARCHAR(20),
email VARCHAR(100),
phone VARCHAR(11),
hire_data DATE,
job_id INT,
salary DOUBLE(8,2),
comm_pct DOUBLE(8,2),
manager_id INT,
dept_id INT
);
#建表的时候带有主键约束
#一般的主键:
CREATE TABLE emp (
emp_id INT PRIMARY KEY,
e_name VARCHAR(20),
email VARCHAR(100),
phone VARCHAR(11),
hire_data DATE,
job_id INT,
salary DOUBLE(8,2),
comm_pct DOUBLE(8,2),
manager_id INT,
dept_id INT
);
#自增的主键:
CREATE TABLE emp (
emp_id INT PRIMARY KEY AUTO_INCREMENT,
e_name VARCHAR(20),
email VARCHAR(100),
phone VARCHAR(11),
hire_data DATE,
job_id INT,
salary DOUBLE(8,2),
comm_pct DOUBLE(8,2),
manager_id INT,
dept_id INT
);
#非空约束和默认值:
CREATE TABLE emp (
emp_id INT PRIMARY KEY AUTO_INCREMENT,
e_name VARCHAR(20) NOT NULL,
email VARCHAR(100),
phone VARCHAR(11),
hire_data DATE,
job_id INT,
salary DOUBLE(8,2) NOT NULL DEFAULT 5000.00,
comm_pct DOUBLE(8,2),
manager_id INT,
dept_id INT
);
#唯一约束:
CREATE TABLE emp (
emp_id INT PRIMARY KEY AUTO_INCREMENT,
e_name VARCHAR(20) NOT NULL,
email VARCHAR(100) UNIQUE,
phone VARCHAR(11) UNIQUE,
hire_data DATE,
job_id INT,
salary DOUBLE(8,2) NOT NULL DEFAULT 5000.00,
comm_pct DOUBLE(8,2),
manager_id INT,
dept_id INT
);
#检查约束:
CREATE TABLE emp (
emp_id INT PRIMARY KEY AUTO_INCREMENT,
e_name VARCHAR(20) NOT NULL,
gender VARCHAR(1) CHECK(gender = '男' OR gender = '女'),
age INT CHECK(age >= 0 AND age <= 150),
email VARCHAR(100) UNIQUE,
phone VARCHAR(11) UNIQUE,
hire_data DATE,
job_id INT,
salary DOUBLE(8,2) NOT NULL DEFAULT 5000.00,
comm_pct DOUBLE(8,2),
manager_id INT,
dept_id INT
);
#注意:MySQL数据库是不支持检查约束的,在建表的过程中,会执行check关键字,但是在执行之后没有任何结果
#外键约束:
CREATE TABLE emp (
emp_id INT PRIMARY KEY AUTO_INCREMENT,
e_name VARCHAR(20) NOT NULL,
gender VARCHAR(1) CHECK(gender = '男' OR gender = '女'),
age INT CHECK(age >= 0 AND age <= 150),
email VARCHAR(100) UNIQUE,
phone VARCHAR(11) UNIQUE,
hire_data DATE,
job_id INT,
salary DOUBLE(8,2) NOT NULL DEFAULT 5000.00,
comm_pct DOUBLE(8,2),
manager_id INT,
dept_id INT,
#外键声明的构成:1.外键名称,2.本表的外键字段,3.外键字段引用的主表字段
CONSTRAINT fk_dept_emp FOREIGN KEY (dept_id) REFERENCES dept(dept_id),
CONSTRAINT fk_job_emp FOREIGN KEY (job_id) REFERENCES job(job_id),
CONSTRAINT fk_emp_manage FOREIGN KEY (manager_id) REFERENCES emp(emp_id)
);
#注意:在构建外键约束的时候,必须先有主表再有从表,否则外键不知道挂谁的字段
删表:
DROP TABLE dept;
注意:如果多个数据库表之间存在外键关联关系,那么必须先保证在从表中没有对主表的依赖,才能够删除主表。
commit;
事务的回滚:
rollback;
注意:如果事务被提交完成了,那么将不能够再进行回滚。