Mysql 语法整理
创建数据库:
create database XXX;
删除数据库:
drop database XXX;
选择数据库:
use XXX;
变量类型:
大致分为三大类:数值、日期/时间、字符串
*注意DECIMAL类型,DECIMAL(m,d)代表总共有m位,小数有d位
CHAR(n)和VARCHAR(n)里的n代表最多存储的字符个数
创建数据表:
CREATE TABLE table_name (
column_name1 column_type1 (修饰符,如 NOT NULL, PRIMARY KEY, AUTO_INCREMENT),
column_name2 column_type2,
...);
删除数据表:
DROP TABLE table_name;
插入数据:
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES (value1, value2,...valueN );
filed 是列名,可以不按顺序列出,但是相应值要根据你给定的列名给出
查询数据:
SELECT column_name1, column_name2
FROM table_name1, table_name2
WHERE XXX
LIMIT N // 限制返回的记录条数
OFFSET M // 指定开始查询的数据偏移量
WHERE语句
操作符:=, <> !=, >, <, >=, <=
AND 、 OR 、
file1 LIKE XXX
LIKE中 % 可以匹配任意字符(0个或多个)
更新数据UPDATE
UPDATE table_name
SET filed1 =value1, file2 = value2
WHERE XXX
删除数据表中的数据
DELETE FROM table_name
WHERE XXXX
合并 UNION
SELECT expression1, expression2, ... expression_n
FROM tables1
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables2
[WHERE conditions];
ALL: 保留重复数据
DISTINCT:删除重复的,加不加一样
排序
ORDER BY filed1 [ASC|DESC ]
GROUP BY:
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
GROUP BY 对表先按 指定的列进行划分,然后对每个表进行操作函数,出现在 group by后面的列明,必须出现在select语句中
后面加 WITH ROLLUP 可以对分组后统计的数据,再用相同的函数进行统计
COALESCE: 如果指定的列值为NULL,则替换为后面的值
SELECT coalesce(name, '总数'), SUM(singin) as singin_count
FROM employee_tbl
GROUP BY name WITH ROLLUP;
多表连接:
INNER JOIN (内连接):获取两个表中字段匹配关系的记录(一旦没有匹配,则这行数据就删除)
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录
RIGHT JOIN(右连接):用于获取右表所有记录,即使左表没有对应匹配的记录
NULL值处理
IS NULL, IS NOT NULL, <=>(两个值都相等,或者都为NULL返回true)
正则表达式
SELECT name
FROM person_tbl
WHERE name REGEXP '^st';
事务
BEGIN | START TRANSACTION
SAVEPOINT identifier
ROLLBACK TO [identifier]
COMMIT
ALTER命令,修改数据表名,数据表字段
ALTER TABLE testalter_tbl DROP filed1;
ALTER TABLE testalter_tbl ADD filed1 INT;
还有 MODIFY,后面可以加 FIRST 或者 AFTER filed_name 修饰
索引
CREATE INDEX indexName ON table_name (column_name)
ALTER table tableName ADD INDEX indexName(columnName)
临时表
CREATE TEMPORARY TABLE SalesSummary
查询第N条数据
LIMIT N-1, N