下面总结了一些 MySQL 语法及基础内容

MySQL 基础

SQL 语言共分为四大类:

  • 数据查询语言 DQL:SELECT、FROM、WHERE
  • 数据操纵语言 DML:INSERT、UPDATE、DELETE
  • 数据定义语言 DDL:CREATE TABLE/VIEW/INDEX 等
  • 数据控制语言 DCL:GRANT、REVOKE

DDL 操作

创建数据库

create database 数据库名;

查看数据库

show databases;

选择数据库

use 数据库名;

删除数据库

drop database 数据库名;

创建表

create table 表名(字段 类型,字段 类型);

查看表定义

desc 表名

查看表

show 表名

删除表

drop table 表名

删除字段

alter table 表名 drop 字段名

添加字段

alter table 表名 add 字段名 字段类型 [指定位置]

[指定位置] 省略是末尾,first 首,after 字段 某个字段之后

修改字段类型

alter table 表名 modify 字段名 字段类型

修改字段名

alter table 表名 change 原字段名 新字段名 字段类型

修改字段默认值

alter table 表名 alter 字段名 set default 新默认值

修改表名

alter table 表名 rename to 新表名

DML 操作

插入记录

insert into 表名(字段,字段,字段) values(数据,数据,数据) 指定字段

insert into 表名 values(数据,数据,数据) 不指定字段,数据需要一一对应

更新记录

update 表名 set 字段=数据,字段=数据 [where 语句]

删除记录

delete from 表名 [where 语句]

DQL 操作

where 子句

where 条件 or 条件 and 条件

条件运算符

=、!=、>、<、>=、<=

+、-、*、/、%

is null

is not null

between 1 and 5 在指定闭区间范围内

in(1,2,4,5) 集合中匹配

like 通配符匹配

rlike 正则表达式匹配

查看记录

select 字段 from 表名,表名 [where 语句][limit 语句]

排序

order by 字段 [asc/desc], 字段 [asc/desc] asc 升序,desc 降序

限制记录数

limit n 前 n 行

limit n,m 第 n+1 行开始 m 条

limit n,-1 第 n+1 行到结尾

连接

[select 语句] inner join 表名 on 条件 内连接,显示相交部分

[select 语句] leftjoin 表名 on 条件 左连接,左边全显示,右边显示相交

[select 语句] right join 表名 on 条件 右连接,右边全显示,左边显示相交

[select 语句] union[ALL|DISTINCT] [select 语句] 全连接,ALL 不去重,DISTINCT 去重,默认去重

子查询

where 条件 (select 语句)

DCL 操作

添加权限

回收权限

MySQL 数据类型

数据类型名

数据类型

字节

tinyint

整型

1

smallint

整型

2

mediumint

整型

3

int、integer

整型

4

bigint

整型

8

float

浮点型

4

double

浮点型

8

bit

位类型

1~8,位 1~64

date

日期

4

datetime

日期时间

8

timestamp

时间戳

4

time

时间

3

year


1

char(m)

字符串

m 属于 0~255;定长;英文 1 字节,中文 2 字节;效率相对高

varchar(m)

字符串

m 属于 0~65535;可变长;中英文都 2 字节;效率相对低

binary(m)

字符串

0~m 字节的定长字符串

enum(‘w’,‘t’,‘f’)

枚举类型

成员个数相关,1 字节成员个数 0~255,只能选一个值

set(‘w’,‘t’,‘f’)

集合类型

每 8 成员占 1 字节,最多 64 成员,能选多个值

一些修饰符

unsigned:无符号

zerofill:填充 0

auto_increment:自增

常用函数

coutn(字段) 记录数

sum(字段)

max(字段)

min(字段)

upper(str)

lower(str)

abs(x)

cell(x) 大于 x 的最小整数值

floor 小于 x 的最大整数值

rand() 随机 0~1

时间相关有许多,下举点例子

now() 当前时间

hour(time) 返回小时值

下为部分选择语句

case [expr] when [value] then result1 when [value] then result2 end