sql语法:详解DDL
Posted siaok
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语法:详解DDL相关的知识,希望对你有一定的参考价值。
mysql版本:8.0.26
可视化客户端:sql yog
目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、DDL是什么?
DDL,英文全称为Data Definition Language,中文释义为“数据库模式定义语言”,即是用于创建库、创建表、修改库和表的结构,虽说有了可视化客户端,可以很方便的使用上述功能,但在批量修改的业务场景下,以此DDL写成的sql脚本比在可视化客户端下执行相比,简直好用太多。
二、和数据库相关的DDL
2.1 创建数据库
👉语法:
CREATE DATABASE 数据库名
案例: 创建数据库0225db
CREATE DATABASE 0225db;
2.2 删除数据库
👉语法:
DROP DATABASE IF EXISTS 数据库名称
案例:删除数据库0225db
DROP DATABASE IF EXISTS 0225db;
2.3 查看所有的数据库,当前用户登录后,可以看到哪些数据库
👉语法:
SHOW DATABASES:
SHOW DATABASES:
2.4 查看某个数据库的详细定义
👉语法:
SHOW CREATE DATABASE 数据库名称;
案例:查看0225db的详细定义
代码演示如下:
SHOW CREATE DATABASE 0225db;
2.5 修改数据库的编码
👉语法
ALTER DATABASE 数据库名 CHARACTER SET 新的字符集名称 COLLATE 校对规则
案例:修改数据库0106db的编码规则
修改之前:
代码修改如下所示:
ALTER DATABASE 0106db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `0106db` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */
注意:
假如你现在修改了数据库的字符集规则,原来已经存放的数据表的字符集规则不变
2.6 使用数据库
👉语法:
use 数据库名;
三、和数据表相关的DDL
一般先要指定在哪个数据库,才能对表进行操作
3.1 查看某个数据库的所有表格
👉语法
USE 数据库名;
SHOW TABLES;
show tables from 数据库名;
案例:查看0106db下的所有数据表
代码演示如下:
USE 0106db;
SHOW TABLES;
SHOW TABLES FROM 0106db;
3.2 创建数据表
👉语法
CREATE TABLE 表名称(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型
)
案例:创建学生表Stu,其中包含学生学号,姓名,出生日期,成绩,体重,性别,电话等字段。
代码演示如下:
CREATE TABLE Stu(
sid INT,
sname VARCHAR(20),
birthday DATE,
score INT,
gender ENUM('男','女'),
weight DOUBLE(4,1),
tel CHAR(11)
)
3.3 查看表的详细定义信息
👉语法:
SHOW CREATE TABLE 表名称;
案例:查看表stu的详细定义信息
SHOW CREATE TABLE STU;
3.4 查看表结构
👉语法:
DESC 数据表名;
案例:查看数据表stu的表结构
代码演示如下:
DESC stu;
3.5 删除表格,包括表结构和里面的数据
👉语法:
①DROP TABLE 表名称;
②DROP TABLE stu IF EXISTS;
第二句的意思是:如果数据库中存在stu表,就把它从数据库0102db中删掉。
,
👉推荐使用第二种,避免出现“Unknown table ‘0106db.stu’”报错信息。
案例:删除学生表stu
代码演示如下:
DROP TABLE IF EXISTS stu;
3.6 修改表的字符集和校对规则
👉语法:
ALTER TABLE 表名称 CHARSET=新字符集 COLLATE=新校对规则;
案例:修改表stu的字符集为utf8mb4,校队规则为utf8mb4_0900_ai_ci
修改之前:
代码修改如下:
ALTER TABLE stu CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
3.7 修改表结构:增加字段
👉语法:
ALTER TABLE 表名称 ADD COLUMN 字段名 数据类型;
案例:给学生表stu增加一个varchar(50) 的字段address
代码演示如下:
ALTER TABLE stu ADD COLUMN address VARCHAR(50);
3.8 修改表结构:删除字段
👉语法:
ALTER TABLE 表名称 DROP COLUMN 字段名;
案例:在学生表中删除刚才新加的字段address
代码演示如下:
ALTER TABLE stu DROP COLUMN address ;
3.9 修改一个字段名称
👉语法:
ALTER TABLE 表名称 CHANGE 旧字段名称 新的字段名称 数据类型;
案例:将stu表的tel字段改名为phone
修改之前:
代码修改之后;
ALTER TABLE stu CHANGE tel phone CHAR(11);
3.10 修改表结构:修改字段的数据类型
👉语法:
ALTER TABLE 表名称 MODIFY 字段名称 新数据类型;
案例:将stu表的score字段的数据类型修改为double
修改之前:
代码修改之后:
ALTER TABLE stu MODIFY score DOUBLE:
3.11 修改表结构:修改字段位置
👉语法:
①ALTER TABLE 表名 MODIFY 字段名称 数据类型 AFTER 另一个字段;
👉上述代码的意思:将要修改位置的字段挪到指定字段的后面
②ALTER TABLE 表名称 MODIFY 字段名称 数据类型 FIRST;
👉上述代码的意思:将要修改位置的字段挪到表格第一行
案例:在stu表中将phone字段挪到sname字段之后
修改之前:
代码修改之后:
ALTER TABLE stu MODIFY phone CHAR(11) AFTER sname
案例:将表stu中的字段gender挪到表格首行
修改之前:
代码修改之后;
ALTER TABLE stu MODIFY gender ENUM('男','女') FIRST;
3.12 修改表名称(重命名表)
👉语法;
ALTER TABLE 表名称 RENAME TO 新名称;
案例:将表stu重命名为t_stu
代码演示如下:
ALTER TABLE stu RENAME TO t_stu;
MySQL从入门到精通50讲-DDL语句详解
DDL语句
DDL 是 DBMS 的核心组件,也是 SQL 的重要组成部分,DDL 的正确性和稳定性是整个 SQL 运行的重要基础。回顾一下以前的知识,DDL 的英文全称是 Data Definition Language,中文是数据定义语言。它定义了数据库的结构和数据表的结构。
数据库定义语句
-
创建数据库语法:
CREATE DATABASE | SCHEMA [IF NOT EXISTS] db_name
[create_option] ...
create_option: [DEFAULT]
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] \'Y\' | \'N\'
CREATE DATABASE
创建具有给定名称的数据库。 CREATE SCHEMA
是 CREATE DATABASE的同义词。如果数据库存在而没有指定 IF NOT EXISTS,则会发生错误。
/* 创建一个名为employees、字符编码为utf8mb4的数据库或实例 */
[root@localhost][(none)]> CREATE DATABASE `employees` DEFAULT CHARACTER SET utf8mb4;
Query OK, 1 row affected (0.02 sec)
/* 数据库存在而没有指定IF NOT EXISTS则会发生错误 */
[root@localhost][(none)]> CREATE DATABASE `
以上是关于sql语法:详解DDL的主要内容,如果未能解决你的问题,请参考以下文章