1.SQL简介
1.SOL通用语法
- 1.SQL语句可以单行或多行书写,以分号结尾。
- 2.SQL语句可以使用空格/缩进来增强语句的可读性。
- 3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写,
- 4.注释:
- 单行注释:--注释内容 或 #注释内容(MySOL特有)
- 多行注释:/* 注释内容 */
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相关知识,来自己动手操作吧。如果有不懂的,欢迎评论区或者私信问我哦!