DDL(数据库定义语言)(五)

时间:2021-07-07 01:02:28

一、数据定义语言(Data Definition Language)的基本操作

定义数据库、表等,包括CREATE语句、ALTER语句、DROP语句。CREATE语句用于创建数据库、数据表等,ALTER语句用于修改表的定义等,DROP语句用于删除数据库、删除表等
# 查看所有数据库名称:
show databases;

# 切换数据库;切换到test数据库:
use information_schema;

# 显示所有表:
show tables;

# 查询表内容:
select * from CHARACTER_SETS;

二、DDL数据库的操作

2.1 创建数据库

CREATE DATABASES 库名字 CHARSET 字符集;

# 规范:关键字一般大写,库名字小写,使用utf8字符集
CREATE DATABASE testdb charset utf8;

# 如果这个数据已经存在,那么会报错database exists
create database student;
# 如果不存在创建,存在就不创建!
create database if not exists student;

忽略大小写参数:可以设置MySQL忽略大小写(全部变成小写),设置前提,是在规划数据库时就加上。如果后期加上,可能会导致use不到大写的库。

show variables like %lower%;
# 将值设置为1,忽略大写小 lower_case_table_names
= 1

2.2 删除数据库

DROP DATABASE student;
# 如果存在删除,不存在就不删除
drop database if exists student;
# 删除名为test999的数据库。如果这个数据库不存在,那么会报错 database doesn‘t exist
drop database student;

2.3 修改数据库的字符集

注意:修改后的字符集必须是前者的严格超集。修改有风险,编码不匹配会出现乱码。

ALTER DATABASE student CHARSET utf8mb4;

三、DDL表的定义

3.1 创建表的语法

help create table;

创建表 CREATE TABLE 表名
(
字段名1,数据类型[完整性约束条件],
字段名2,数据类型[完整性约束条件],
...
字段名n,数据类型[完整性约束条件]
);

3.2数据类型

数值类型

DDL(数据库定义语言)(五)

日期和时间类型

DDL(数据库定义语言)(五)

 字符串类型

DDL(数据库定义语言)(五)

3.3 约束条件

PRIMARY KEY    # 主键约束,用于唯一标识对应的记录
FOREING KEY    # 外键约束
NOT NULL        # 非空约束
UNIQUE       # 唯一性约束
DEFAULT         # 默认值约束,用于设置字段的默认值

3.4 示例

use webdb;
-- DROP TABLE t1;
CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 学生ID,
NAME VARCHAR(20) NOT NULL COMMENT 学生姓名,
age TINYINT COMMENT 学生年龄,
gender ENUM(m,f) NOT NULL DEFAULT m COMMENT 学生性别,
birthday DATETIME DEFAULT NOW() COMMENT 入学时间,
telnum varchar(12) NOT NULL UNIQUE COMMENT 手机号码);

3.5 查看表及表结构

# 查看所有表
SHOW TABLES;

# 查看t1表结构
DESC t1;

# 查看创建表语句
show create table t1;

3.7 修改表名

# 将t1表名称修改为frist_grade
ALTER
TABLE t1 RENAME frist_grade;

3.8  修改字段名称

# 修改字段名 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
ALTER TABLE frist_grade CHANGE birthday bir datetime DEFAULT CURRENT_TIMESTAMP COMMENT 入学时间;

3.9 修改字段类型

# 修改字段的数据类型 ALTER TABLE 表名 MODFIY 字段名 数据类型;
# 将NAME的长度修改为30
ALTER TABLE frist_grade MODIFY NAME varchar(30);

3.10 添加字段

# 添加字段 ALTER TABLE 表名 ADD 新字段名 数据类型;

# 在表的末尾增加一列
ALTER table frist_grade ADD wechat VARCHAR (20) NOT NULL UNIQUE;

# 指定位置添加列,在birthday后面添加一个email列
ALTER TABLE frist_grade ADD email VARCHAR(50) NOT NULL AFTER birthday;

# 在第一列位置,添加idcard列
ALTER TABLE frist_grade ADD idcard VARCHAR(20) not NULL FIRST;

3.11 删除字段列

一定要认真审核,反复和开发人员确认,删除列时,会将此列原有数据全部清除掉。删除之前要备份

# 删除字段 ALTER TABLE 表名 DROP 字段名;
ALTER TABLE frist_grade DROP hobby;

3.12 删除表

DROP TABLE frist_grade;