SQL通用语法

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

SQL分类

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

DDL-数据库操作

查询所有数据库

1
SHOW DATABASES;//查询数据库服务器种所有的数据库

查询当前数据库

1
SELECT DATABASE();//查询当前操作的数据库

创建数据库

1
CREATE DATABASE [ IF NOT EXISTS]数据库名「 DEFAULTCHARSET字符集][ COLLATE排序规则];

创建名为“。。。”的数据库

1
create database 数据库名;

如果当前数据库服务器中不存在名为“。。。”的数据库,则创建名为“。。。”的数据库

1
create database if not exists 数据库名;

如果当前数据库服务器中不存在名为“。。。”的数据库,则创建名为“。。。”的数据库

1
create database if not exists 数据库名;

创建名为“。。。”的数据类型位utf8mb4的数据库

1
create database 数据库名 default charset utf8mb4;

删除数据库

1
DROP DATABASE [ IF EXISTS]数据库名;

使用数据库

1
USE 数据库名;

DDL-表操作-创建

1
2
3
4
5
6
7
create table 表名(
字段1 字段1类型[comment 字段1注释],
字段2 字段2类型[comment 字段2注释],
字段3 字段3类型[comment 字段3注释],
...
字段n 字段n类型[comment 字段n注释]
)[comment 表注释];

DDL-表操作-查询

查询当前数据库所有表

1
show tables;

查询表结构

1
desc 表名;

查询指定表的建表语句

1
show create table 表名;

SQL数据类型

数值类型

分类 类型 大小 有符号(signed)范围 无符号(unsigned)范围 描述
数值类型 tinyint 1 byte (-128,127) (0,255) 小整数值
smallint 2 byte (-32768,32767) (0,65535) 大整数值
mediumint 3 byte (-8388608,838867) (0,16777215) 大整数值
int或integer 4 byte (-2147483648,2147483647) (o,4294967295) 大整数值
BIGINT 8 byte (-2^63,2^63-1) (0,2^64-1) 极大整数值
FlOAT 4 byte (-3.402823466E+38.3.402823466351 E+38) 0和(1.175494351 E-38,3.402823466 E+38) 单精度浮点数值
DOUBLE 8 byte (-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-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
L.ONGTEXT 0-4 294 967 295 bytes 极大文本数据

日期类型

分类 类型 大小 范围 格式 描述
日期类型 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 混合日期和时间值,时间戳