数据库: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相关知识,来自己动手操作吧。如果有不懂的,欢迎评论区或者私信问我哦!

相关推荐
bug菌¹24 分钟前
滚雪球学Oracle[6.2讲]:Data Guard与灾难恢复
数据库·oracle·data·灾难恢复·guard
一般路过糸.28 分钟前
MySQL数据库——索引
数据库·mysql
Cengineering1 小时前
sqlalchemy 加速数据库操作
数据库
Cikiss1 小时前
微服务实战——平台属性
java·数据库·后端·微服务
小小不董1 小时前
《Linux从小白到高手》理论篇:深入理解Linux的网络管理
linux·运维·服务器·数据库·php·dba
无敌少年小旋风2 小时前
MySQL 内部优化特性:索引下推
数据库·mysql
柒小毓2 小时前
将excel导入SQL数据库
数据库
bug菌¹2 小时前
滚雪球学Oracle[2.5讲]:数据库初始化配置
数据库·oracle·数据库初始化·初始化配置
一休哥助手2 小时前
Redis 五种数据类型及底层数据结构详解
数据结构·数据库·redis
翔云1234562 小时前
MVCC(多版本并发控制)
数据库·mysql