这一篇文章介绍MYSQL的DDL数据定义语言
1.DDL数据定义语言
1.1 库表和字段的关系
DDL操作时对于库, 表和字段的操作--- 库表和字段的关系如下
- mysql服务相当于excel软件
- 每一个mysql数据库相当于一个Excel文件
- 每一个文件中的多个sheet详单相当于数据表
- 每个表中的列索引相当于字段
1.2 DDL数据库操作
1.数据库创建
CREATE DATABASE 数据库名称;
创建数据库时,该数据库名称已存在会报错,为了避免报错,我们在创建数据库时增加 IF NOT EXISTS判断表是否存在
CREATE DATABASE IF NOT EXISTS test_db;
一般我们创建数据库时会增加数据集,因为不书写数据集会导致无法存储中文
CREATE DATABASE 数据库名 CHARSET = utf8;
CREATE DATABASE 数据库名 CHARACTER SET 'utf8';
2.查看当前服务中所有的数据库名称
SHOW DATABASES;
3.使用数据库
USE 数据库名称;
4.查看当前正在使用的数据库
SELECT DATABASE();
5.删除数据库
DROP DATABASE 数据库名称
删除数据库时,删除的数据库名称不存在会报错,可以使用IF EXISTS判断
DROP DATABASES IF EXISTS 数据库名称;
6.查看数据库的创建语句,一般可以用来查看数据库的字符集、默认外键名等
SHOW CREATE DATABASE 数据库名称;
1.3 DDL数据表操作
数据表不能脱离数据库而单独存在,在创建和使用数据表之前必须先使用数据库
1.创建数据表
create table 表名 ( 字段1 数据类型 [约束], 字段2 数据类型 [约束], 字段3 ......
)创建的数据表名称不能存在,同样可以使用 IF NOT EXISTS判断
查看当前数据库中所有的数据表名称
SHOW TABLES;
查询表中字段的详细信息
DESC 表名
DESCRIBE 表名
4.删除数据表
DROP TABLE 数据表名;
同样可以使用IF EXISTS来判断是否存在,这个关键字就是判断某个对象存不存在的,判断为是就执行,否则就什么都不做
5.如果我们在一个数据库中想操作另一个数据库,可以使用数据库名.表名的形式
6.修改表名
ALTER TABLE 要修改的旧表名 RENAME TO 新表名;
1.4 DDL数据表字段操作
字段是依托于数据表存在的,不能单独存在
1.新建字段
ALTER TABLE 表名 ADD 字段名称 字段类型 [约束];
2.修改字段
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 字段类型 [约束]
如果不需要修改字段名,可以把旧名称和新名称写一样,也可以使用MODIFY关键字
ALTER TABLE 表名 MODIFY 字段名 字段类型 [约束]
3.删除字段
ALTER TABLE 表名 DROP 字段名;
所有DDL语言的删除操作都用DROP,所有DML语言的删除都用DELETE
1.5 comment注释
comment 就是对于数据库中的数据表或数据字段进行注释的,方便后续使用IDE工具时查询数据内容,创建表时加上就行,如
CREATE TABLE person
(
id INT COMMENT '身份证号',
name VARCHAR(30) COMMENT '姓名',
gender VARCHAR(30) COMMENT '性别'
) COMMENT '人口表';
2. DML数据操作语句
2.1 数据插入语句
DML语言: 数据操作语言, 对于数据库进行增 删 改的操作,关键字INSERT
-- 1.一次插入一条数据,不指定字段
INSERT INTO 表名 VALUE(字段值1,字段值2,字段值3...);
-- 2.一次插入多条数据,不指定字段
INSERT INTO 表名 VALUE(字段值1,字段值2,字段值3...),(字段值1,字段值2,字段值3),(...),...;
-- 3.一次插入一条数据,指定字段
INSERT INTO 表名(字段1,字段2...) VALUE(字段值1, 字段值2...);
-- 4.一次插入多条数据,指定字段
INSERT INTO 表名(字段1, 字段2,...) VALUES(字段值1, 字段值2,...), (字段值1, 字段值2,...),...;
注意事项:
2.2 数据的修改和删除
-- 1.修改数据记录 -使用UPDATE关键字
UPDATE 表名 SET 字段名 = 值 [WHERE筛选条件];
-- 2.删除数据记录 -DELETE关键字
DELETE FROM 表名 WHERE [筛选条件];
注意事项:
TRUNCATE TABLE 表名