资料来源:MySQL 教程
目录
1 插入数据
1.1 完整插入
INSERT INTO table_name
VALUES (value1,value2,value3,...);
1.2 指定列名插入
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
2 删除
DELETE FROM table_name
WHERE some_column=some_value;
3 更新
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
4 查询
查询语句是sql非常常用的,也是非常值得细细研究的;
4.1 DISTINCT
可以显示唯一值,比如鸢尾花标签只需要显示不同一共三种。
SELECT DISTINCT label
FROM iris
4.2 AND和OR
SELECT *
from iris
where label='virginica' AND petalLength > 6.0
4.3 ORDER BY
SELECT *
from iris
where label='virginica' ORDER BY sepalLength DESC
按照某列顺序显示
4.4 LIMIT
SELECT *
from iris
where label='virginica'
LIMIT 5
限制只显示5条,多了就不返回;
4.5 LIKE
SELECT *
from iris
where petalLength LIKE '6%'
正则表达式匹配项%、_、[charlist]、[!charlist];匹配任意个、匹配一个、列表任意一个、不在里面;
4.6 IN
SELECT *
from iris
where petalLength IN (6.0,6.1)
查找的值在某个集合里面;
4.7 BETWEEN AND
SELECT *
from iris
where petalLength BETWEEN 5.5 AND 6.5
4.8 别名
SELECT A.label
FROM iris as A
where sepalLength < 5
4.9 JOIN ON
SQL join 用于把来自两个或多个表的行结合起来。
SELECT *
FROM iris
inner join logs.irisLog
on iris.dataIndex = logs.irisLog.dataIndex
- 关于
left join on
和right join on
的理解,从哪边join,哪边的值就会全部保留,不匹配的就显示null
值; - MySQL不支持全关联关键字;
- 直接
Join
不加on
关键字,就是两个表求笛卡尔积;
4.10 UNION
合并两个查询的结果;语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
SELECT sepalLength
FROM iris
where dataIndex = 1
UNION
SELECT sepalWidth
FROM iris
where dataIndex = 2
4.11 INSERT INTO SELECT
根据查询的结果插入到另一张表中;
INSERT INTO Websites (name, country)
SELECT app_name, country FROM apps
WHERE id=1;
4.12 CREATE INDEX
创建索引,方便更快的查询;
CREATE INDEX index_name
ON table_name (column_name)
4.13 DROP
撤销索引、撤销表以及撤销数据库;
4.14 视图
CREATE view irisSetosa as
SELECT *
FROM iris
where label ='setosa'
当需要重复的使用一组操作时,将其写成视图,直接可以当做表来查询,但是不是实际的表;
SELECT *
FROM irisSetosa
删除视图用:DROP VIEW irisSetosa
4.15 时间
SELECT now()
返回2020-12-04 21:24:54