sql语法:详解DDL

简介: 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;

相关文章
|
1天前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
1月前
|
SQL 存储 关系型数据库
SQL `CREATE DATABASE` 语法
【11月更文挑战第10天】
64 3
|
1月前
|
SQL 关系型数据库 数据库
sql语法
【10月更文挑战第26天】sql语法
38 5
|
2月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
2月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
36 0
|
2月前
|
SQL 关系型数据库 MySQL
Mysql(2)—SQL语法详解
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发,旨在处理关系数据模型。
40 0
|
4月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
52 5
|
5月前
|
SQL 关系型数据库 数据库
sql语法
【7月更文挑战第30天】sql语法
50 12
|
4月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
505 0
|
5月前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之遇到SQL语法错误,该如何排查
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。