CREATE DATABASE IF NOT EXISTS name CHARACTER SET utf-8/gbk;
SHOW CREATE DATABASE name;查询数据库信息
ALTER DATABASE name CHARACTER=utf-8;修改格式
DROP DATABASE name;删除数据库
SHOW WARNINGS; 查询警告
USE name;打开数据库
SLECT DATABASE();查在哪个库
SHOW CREATE TABLE name; 查询信息
SHOW COLUMNS FROM tb(表名);
AUTO_INCREMENT 自动编号
PRIMARY KEY 主键
UNIQUE 唯一约束 可以为空(只能有一个) 一个表可以存在多个唯一约束
DEFAULT 默认值
FOREIGN KEY 外键 父子使用相同的存储引擎 safault-storage-engine= INNODB
REFERENCES 关联
SHOW INDEXES FROM tb\G; 表结构
DELIMITER 修改结束符号
外键约束:
CASCADE 从父表删除或更新 且自动删除或更新子表中匹配的行
SET NULL 从父表删除或更新行 并设置子表中的外键列为NULL
RESTRICT 拒绝对父表的删除或更新
NO ACTION 与restrict相同
添加列:
ALTER TABLE tab_name ADD col_name column_definition [FIRST |AFTER col_name]
删除列:
ALTER TABLE tab_name DROP clo_name 逗号分隔 可以多个操作
ALTER TABLE tab_name ADD FOREIGN KEY (id) REFERENCES(关联) tab_name(pid)
添加默认约束:ALTER TABLE tab_name ALTER clo_name SET DEFAULT **
删除默认约束:ALTER TABLE tab_name ALTER clo_name DROP DEFAULT
删除主键:ALTER TABLE tab_name DROP PRIMARY KEY
删除唯一约束: ALTER TABLE tab_name DROP INDEX dex_name
删除外键约束: ALTER TABLE tab_name DROP FOREIGN KEY key_name
修改列定义:ALTER TABLE tab_name MODIFY col_name column_definition FIRST | AFTER col_name
修改列名称:ALTER TABLE tab_name CHANGE old_col_name new_col_name column_definition FIRST | AFTER col_name
修改数据表名:ALTER TABLE tab_name RENAME new_tab_name
插入记录 INSERT tab_name VALUES() (可以插入多条)
INSERT tab_name SET col_name="" (只能插一条)
更新记录 UPDATE tab_name SET age=age+5; 年龄都加5
UPDATE tab_name SET age=age+5 WHERE condition;
删除记录 DELETE FROM tab_name WHERE condition;
查询 (顺序、别名) SELECT
分组 GROUP BY col_name
分组条件 GROUP BY col_name HAVING condition
ORDER BY ASC(升序_默认)| DESC(降序)
限制 LIMIT n,n
设置客户端显示的编码方式:SET NAMES gbk;
查看tab_name的数据表结构 DESC tab_name
子查询可包含多个关键字:DISTINCT / GROUP BY / ORDER BY / LIMIT
外层查询可以是: SELECT 、INSERT、UPDATE、SET、DO
四舍五入并保留两位小数 SELECT ROUND(AVG(price),2) FROM name
ANY 、OME、 ALL、 IN、 NOT IN
INSERT tab_name(col_name) SELECT
多表的更新 根据分类表去更新主表 UPDATE tab_name set col_name =
连接表 tab_1 INNER | CROSS JOIN、LEFT | RIGHT JOIN tab_2 ON condition SET
自身连接
字符函数
concat('a','b') 字符连接
concat_ws('|','a','b','c') 使用指定的分隔符进行字符连接
format(1234.76,2) 数字格式化
lower('DS') 转换成小写字母
upper('ss') 转换成大写字母
left('dsffs',2) ds 获取左侧字符
right('sdfs',3) dfs 获取右侧字符
length('') 获取字符串长度
ltrim(' df') 删除前导空格
rtrim(' fdd ') 删除后导空格
trim(' df ') 删除前导和后导空格
trim(leading '?' ffrom '???jhdhu??') 删除前导的字符
trim(trailing '?' ffrom '???jhdhu??') 删除后导的字符
trim(both '?' ffrom '???jhdhu??') 删除前后的字符
sunstring('dsfcxvxc',2,3) uns 字符串截取
like 模式匹配
replace('???dds?dds??','?',' ') 字符串替换
数值运算符
ceil() 向上取整
div 整数除法
floor() 向下取整
mod 取模
power(2,2) 幂运算
round(2.33,1) 四舍五入
truncate() 数字截取
比较运算符(not)
between and
in
is null
日期函数
now() 当前日期
curdate() 当前日期
curtime() 当前时间
date_add(interval) 日期变化
datediff() 日期差值
date_format() 日期格式化
信息函数
connection_id() 连接ID
datebase() 当前数据库
last_insert_id() 最后插入记录ID
user() 当前用户
version() 版本信息
聚合函数
avg()
count()
max()
min()
sum()
加密函数
md5() 信息摘要算法
password() 密码计算
自定义函数
CREATE FUNCTION function_name RETURNS
CREATE FUNCTION f1() RETURNS VARCHAR(30)
RETURN DATE_FORMAT(NOW(),'%Y年%M月%d日 %h点:%i分:%s秒')
复合结构 BEGIN END
创建存储过程
CREATE
PROCEDURE sp_name [in | out | inout] 过程体
调用存储过程
CALL sp_name
带in的存储过程
CREATE PROCEDURE sp_name(IN )没返回值
CREATE PROCEDURE sp_name(IN ,OUT )有回值 INTO var
CALL sp_name(22,@num); 返回值赋给@num 用户变量@dd
ROW_COUNT() 更改数量