3.DDL语言
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, CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南