目录
一.SQL分类
二.DDL
2.1 数据库操作
2.2 表操作
2.2.1 表操作-数据类型(基于MYSQL)
2.2.2 表操作-修改
2.2.3 表操作-删除
三.DML
3.1 添加数据
3.2 修改数据
3.3 删除数据
一.SQL分类
分类 | 全称 | 说明 |
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表, 字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
二.DDL
2.1 数据库操作
Ⅰ 查询所有数据库 show databases
Ⅱ 查询当前数据库 select database()
Ⅲ 创建数据库
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ]注:可以通过if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不创建Ⅳ 删除数据库
drop database [ if exists ] 数据库名注:如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除Ⅴ 切换数据库 use 数据库名
2.2 表操作
Ⅰ 查询当前数据库所有表show 表名Ⅱ 查看指定结构desc 表名Ⅲ 查询指定表的建表语句show create table 表名说明:通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等Ⅳ 创建表结构CREATE TABLE 表名(字段1 字段1类型 [约束] [COMMENT 字段1注释],字段2 字段2类型 [约束] [COMMENT 字段2注释],字段3 字段3类型 [约束] [COMMENT 字段3注释],字段n 字段n类型 [约束] [COMMENT 字段n注释]
)[ COMMENT 表注释]
2.2.1 表操作-数据类型(基于MYSQL)
Ⅰ 数值类型
类型 | 大小 | 有符号(SIGNED)范围 | 无符号(UNSIGNED)范围 | 描述 |
tinyint | 1byte | (-128,127) | (0,255) | 小整数值 |
smallint | 2bytes | (-32768,32767) | (0,65535) | 大整数值 |
mediumint | 3bytes | (-8388608,8388607) | (0,16777215) | 大整数值 |
int/integer | 4bytes | (-2147483648,2147483647) | (0,4294967295) | 大整数值 |
bigint | 8bytes | (-2^63,2^63-1) | (0,2^64-1) | 极大整数值 |
float | 4bytes | (-3.402823466 E+38, 3.402823466351 E+38) | 0 和 (1.175494351 E- 38,3.402823466 E+38) | 单精度浮点数值 |
double | 8bytes | (-1.7976931348623157 E+308, 1.7976931348623157 E+308) | 0 和(2.2250738585072014 E-308, 1.7976931348623157 E+308) | 双精度浮点数值 |
decimal | 依赖于M(精度)和D(标度) 的值 | 依赖于M(精度)和D(标度)的值 | 小数值(精确定点数) |
Ⅱ 字符串类型
类型 | 大小 | 描述 |
char | 0-255 bytes | 定长字符串(需要指定长度) |
varchar | 0-65535 bytes | 变长字符串(需要指定长度) |
tinyblob | 0-255 bytes | 不超过255个字符的二进制数据 |
tinytext | 0-255 bytes | 短文本字符串 |
blob | 0-65535 bytes | 二进制形式的长文本数据 |
text | 0-65535 bytes | 长文本数据 |
mediumblob | 0-16777215 bytes | 二进制形式的中等长度文本数据 |
mediumtext | 0-16777215 bytes | 中等长度文本数据 |
longblob | 0-4294967295 bytes | 二进制形式的极大文本数据 |
longtext | 0-4294967295 bytes | 极大文本数据 |
注:char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。
Ⅲ 日期时间类型
类型 | 大小 | 范围 | 格式 | 描述 |
date | 3 | 1000-01-01 至 9999-12-31 | YYYY-MM-DD | 日期值 |
time | 3 | -838:59:59 至 838:59:59 | HH:MM:SS | 时间值或持续时间 |
year | 1 | 1901 至 2155 | YYYY | 年份值 |
datetime | 8 | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
timestamp | 4 | 1970-01-01 00:00:01 至 2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值,时间戳 |
2.2.2 表操作-修改
Ⅰ 添加字段ALTER TABLE 表名 ADD 字段名 类型 (长度) [COMMENT 注释] [约束];Ⅱ 修改数据类型ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);Ⅲ 修改字段名和字段类型ALTER TABLE表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT注释][约束];Ⅳ 删除字段alter table drop 字段名Ⅴ 修改表名alter table 表名 rename to 新表名;
2.2.3 表操作-删除
Ⅰ 删除表drop table [if exists] 表名;IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不加该参数项,删除一张不存在的表,执行将会报错)。Ⅱ 删除指定表,并重新创建表truncate table 表名;
三.DML
3.1 添加数据
基本格式INSERT [INTO] 表名[(字段名1, 字段名2, ...)] VALUES(值1, 值2, ...);批量添加数据insert into employee values
(值1, 值2, ...),
(值1, 值2, ...);注:
* 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
* 字符串和日期型数据应该包含在引号中。
* 插入的数据大小,应该在字段的规定范围内
3.2 修改数据
基本格式UPDATE 表名 SET 字段名1 = 值1 , 字段名2 = 值2 , .... [ WHERE 条件 ] ;注:UPDATE 语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据
3.3 删除数据
基本格式DELETE FROM 表名 [ WHERE 条件 ] ;注:DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据