DDL语言
-
CREATE
-
ALTER
-
DROP
1.创建、删除数据库
创建数据库
CREATE DATABASE test DEFAULT CHARACTER SET utf8;
- test是数据库名称
- DEFAULT CHARACTER SET 是设置数据库的编码
查看数据库:
SHOW DATABASE;
查看数据库编码:
SELECT schema_name,default_character_set_name
FROM information_schema.schmata
WHERE schema_name="test";
删除数据库
DROP DATABASE test;
选择数据库
USE test;
2.创建、删除和修改表
1.)创建和删除表
创建表
CREATE TABLE emp(employee_id int,
employee_name varchar(10),
salary float(8,2));
查看已经创建的表
SHOW TABLES;
删除表
DROP TABLE emp;
创建表的三种方法
# 1.常规创建
create table if not exists 目标表
# 2.复制表格
create 目标表 like 来源表
# 3.将table1的部分拿来创建table2
create table if not exists actor_name
(
first_name varchar(45) not null,
last_name varchar(45) not null
)
select first_name,last_name
from actor
2.)修改表
修改表名
ALTER TABLE emp RENAME emp1;
修改列名
ALTER TABLE emp CHANGE COLUMN col1 col2 varchar(10);
修改列类型
ALTER TABLE emp MODIFY employee_name vachar(20);
增加新列
ALTER TABLE emp ADD COLUMN new_col varchar(10);
删除指定列
ALTER TABLE emp DROP COLUMN col_name;
3.约束
3.1约束概述
数据库约束是对表中的数据进行进一步的约束,保证数据的正确性、有效性和完整性。
3.2约束的种类
1.主键约束
主键约束(PRIMARY KEY)是使用比较频繁的约束。主键是表的一个特殊字段,该字段能唯一标识该表中的每一条信息。
特点:
- 不允许为空
- 一张表只允许有一个主键约束
- 不允许重复出现
- 保证数据的唯一性
2.外键约束
外键约束(FOREIGN KEY)经常与主键约束一同使用,用来确保数据的参照完整性。
特点:
- 外键约束允许有空值
- 外键约束允许重复
- 外键约束的值必须是参照表中的参照列(该列为主键)中所包含的值
- 保证数据的参照完整性
3.唯一约束
唯一约束(UNIQUE KEY)与主键约束相似,都是确保列中值得唯一性,唯一约束可以存在多个。
特点:
- 不允许重复
- 允许空值
- 允许多个列田间唯一约束
- 保证数据的唯一性
4.非空约束
非空约束(NOT NULL)用来约束表中的值不允许为空。
特点:
- 允许重复
- 不允许为空
- 保证数据的值没有空值
5.检查约束(MySQL没有)
检查约束(CHECK)是用户自定义的约束,是用来检查数据表中 字段值是否有效的手段
3.3 添加和删除约束
1.主键约束
主键列支持添加”自增“功能
- 一个表中只能有一列为自增长
- 自增长只能添加到主键约束列或唯一约束列
- 自增长的类型只能为整数类型
- 删除主键约束列或唯一约束列时需要先删除该列的自增长
#添加约束
ALTER TABLE emp ADD PRIMARY KEY(col_name);
#添加主键自增长
ALTER TABLE emp MODIFY col_name int AUTO_INCREMENT;
#删除自增长
ALTER TABLE emp MODIFY col_name int;
#删除约束
ALTER TABLE emp DROP PRIMARY KEY;
2.外键约束
#添加约束
#emp是表名,emp_FK是约束名,col_name是列名,emp1是参考的表,col_name1是参考表的参考列
ALTER TABLE emp ADD CONSTRAINT emp_FK FOREIGN KEY col_name REFERENCES emp1(col_name1);
#删除约束
ALTER TABLE emp DROP FOREIGN KEY emp_FK;
3.唯一约束
#添加约束
ALTER TABLE emp ADD CONSTRAINT emp_un UNIQUE(col_name);
#删除约束
ALTER TABLE emp DROP UNIQUE emp_un;
4.非空约束
#添加约束
ALTER TABLE emp MODIFY col_name int NOT NULL;
#删除约束
ALTER TABLE emp MODIFY col_name int NULL;
5.查询表中的约束
SHOW KEYS FROM emp;
6.在创建表时添加约束
CREATE TABLE emp1(
col_name1 int PRIMARY KEY AUTO_INCREMENT,
col_name2 char UNIQUE,
col_name3 varchar(10) NOT NULL);