数据库:SQL分类之DDL详解

1.SQL简介

1.SOL通用语法

  1. 1.SQL语句可以单行或多行书写,以分号结尾。
  2. 2.SQL语句可以使用空格/缩进来增强语句的可读性。
  3. 3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写,
  4. 4.注释:
  5. 单行注释:--注释内容 或 #注释内容(MySOL特有)
  6. 多行注释:/* 注释内容 */

2.SQL分类

|-----|----------------------------|-----------------------------|
| 分类 | 全称 | 说明 |
| DDL | Data Definition Language | 数据定义语言,用来定义用来定义数据库对象 |
| DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
| DQL | Data Query Language | 数据查询语句,用来查询数据库中表的记录 |
| DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |

2.DDL

1.数据库操作

1.1 查询

查询所有数据库:

Show databases;

查询当前数据库:

Select database();

1.2 创建

Create database (if exists) 数据库名;

1.3 删除

Drop database (if exists) 数据库名;

1.4使用

Use 数据库名;

2.表操作

2.1查询

查询当前数据库所有表

Show tables;

查询表架构

Desc 表名;

查询指定表的建表语句

Show create table 表名;

2.2创建

Create table 表名(

字段1 字段1类型 comment '字段1注释' ,

字段2 字段2类型 comment '字段2注释' ,

字段3 字段3类型 comment '字段3注释'

) comment '表注释';

2.3修改

添加字段

Alter table表名add 字段名 类型 comment'注释';

修改数据类型

Alter table表名modify 字段名 新数据类型 comment'注释';

修改字段名字和字段类型

Alter table表名change 旧字段名 新字段名 类型 comment'注释';

修改表名

Alter table 表名 rename to 新表名;

2.4删除

删除表

Drop table (if exists) 表名;

删除指定表,把重新创建该表

Truncate table 表名;

删除字段

Alter table 表名 drop 字段名;

3.数据类型的分类

我们在前面DDL中发现,好多地方都提到了类型,这里的类型到此和C语言中有没有什么相同之处呢?我们来看。

1.数值类型

|-------------|--------|------------------------------|------------------------------------|------------|
| 类型 | 大小 | 有符号(signed)范围 | 无符号(unsigned)范围 | 描述 |
| tinyint | 1bytes | (-2^7,2^7-1) | (0,2^7-1) | 小整数值 |
| smallint | 2bytes | (-2^15,2^15-1) | (0,2^15-1) | 大整数值 |
| mediumint | 3bytes | (-2^23,2^23-1) | (0,2^23-1) | 大整数值 |
| int/intecer | 4bytes | (-2^31,2^31-1) | (0,2^31-1) | 大整数值 |
| bigint | 8bytes | (-2^63,2^63-1) | (0,2^63-1) | 极大整数值 |
| float | 4bytes | (-3.4*10^38,3.4*10^38) | 0 和 (1.7*10^(-38),3.4*10^38) | 单精度浮点数值 |
| double | 8bytes | (-1.7*10^308,1.7*10^308) | 0 和 (2.2*10^(-308),1.7*10^308) | 双精度浮点数值 |
| decimal | | 依赖于(M)精度和(D)标度的值 | 依赖于(M)精度和(D)标度的值 | 小数值(精确定点数) |
[数值类型]

注意:

123.13

精度是5

标度是2

2.字符串类型

|------------|-----------------------|-----------------|
| 类型 | 大小 | 描述 |
| char | 0-255 bytes | 定长字符串 |
| varchar | 0-65535 bytes | 变长字符串 |
| tinyblob | 0-255 bytes | 不超过255个字符的二进制数据 |
| tinytext | 0-255 bytes | 短文本字符串 |
| blob | 0-65 535 bytes | 二进制形式的长文本数据 |
| text | 0-65 535 bytes | 长文术数据 |
| mediumblob | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
| mediumtext | 0-16 777 215 bytes | 中等长度文本数据 |
| longblob | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
| longtext | 0-4 294 967 295 bytes | 极大文本数据 |

3.日期类型

|-----------|--------|-------------------------------------------|---------------------|--------------|
| 类型 | 大小 | 范围 | 格式 | 描述 |
| date | 3bytes | 1000-01-01 至 9999-12-31 | YYYY-MM-DD | 日期值 |
| time | 3bytes | -838:59:59 至 838:59:59 | HH:MM:SS | 时间值或持续时间 |
| year | 1bytes | 1901 至 2155 | YYYY | 年份值 |
| dateyime | 8bytes | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
| timestamp | 4bytes | 1970-01-01 00:00:01 至 2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值,时间戳 |

本期讲解就到此结束了,大家可以根据我写的DDL相关知识,来自己动手操作吧。如果有不懂的,欢迎评论区或者私信问我哦!

相关推荐
anxiao_m几秒前
2026大文件传输软件推荐,从速度安全多维度客观测评
数据库·文件传输·传输
IT大白鼠13 分钟前
MySQL 分布式集群系列 · 第七篇——生产调优实战:NDB 性能、内存、高可用全方位优化
数据库·分布式·mysql
IvorySQL15 分钟前
打造下一代 AI Agent 的统一多模智能数据底座——PostgreSQL 与 AI 的融合演进
数据库·人工智能·postgresql
ShineWinsu15 分钟前
对于MySQL:内置函数的解析
linux·数据库·c++·mysql·面试·函数·查询
isNotNullX22 分钟前
智能问数为什么答不准?数据、语义、模型、SQL四层拆解
数据库
烂蜻蜓2 小时前
Django入门教程(三):django-admin与manage.py命令完全指南
数据库·django·sqlite
yunlaodacom2 小时前
腾讯云国际版代理商:COS标准、低频、归档和深度归档怎么选?存储成本与数据取回区别
数据库·云计算·腾讯云
Nturmoils2 小时前
SQL Server数据库迁移:V9R4C019 如何接住存量 T-SQL 批处理
数据库
NineData2 小时前
NineData智能数据管理平台新功能发布|2026年8月
数据库·人工智能·oracle·中间件·agent·数据库开发·ninedata
Elastic 中国社区官方博客2 小时前
Elasticsearch 向量数据库:几分钟内完成部署,以经济高效的方式扩展至数千亿规模
大数据·运维·数据库·elasticsearch·搜索引擎·ai·全文检索