您的位置:首页 > 数据库

SQL基础语句总结

2016-10-11 11:38 190 查看
写在前面:SQL是工作中一个非常重要的工具,它使用的关键字和语法并不复杂,今天稍作总结,加深记忆。

SELECT

SELECT 列名称 FROM 表名称

从表中选取指定的列,可以同时指定多个列,以“,”隔开。

SELECT * FROM 表名称

从表中选取所有的列 。

SELECT DISTINCT 列名称 FROM 表名称

返回唯一不同的值,即不包含重复值。

SELECT的结果被存在一个结果集中。

使用子查询

可以把一条SELECT语句返回的结果用于另一条SELECT语句的WHERE子句

作为计算字段使用子查询

逐渐增加子查询来建立查询,尤其适用于语句和数据比较复杂的情况

WHERE

SELECT 列名称 FROM 表名称

WHERE 列 运算符 值

WHERE后可以设置组合条件,以逻辑运算符ANDOR连接。

SELECT 列名称 FROM 表名称

WHERE 列 IN (值1,值2…)

使用IN操作符在WHERE子句中规定多个值。

SELECT 列名称 FROM 表名称

WHERE 列 BETWEEN 值1 AND 值2

使用BETWEEN操作符在WHERE子句中规定值的范围

ORDER BY

SELECT 列名称 FROM 表名称

ORDER BY 列名称

ORDER BY语句默认按照升序进行排序,可以使用DESC关键字设置成降序排列。

GROUP BY

SELECT 列名称 FROM表名称

GROUP BY 列名称

若分组的列中具有NULL值,则将NULL值作为一个分组返回。

所有使用WHERE的语句都可以用HAVING代替,唯一的区别是,WHERE过滤行,HAVING过滤分组。

LIMIT

SELECT 列名称 FROM表名称

LIMIT 行号,行数

使用LIMIT语句指定返回第几行或前几行或第几行至第几行。

行数不够时,将返回能够返回的行。

SELECT子句顺序

SELECT——FROM——WHERE——GROUP BY——HAVING——ORDER BY——LIMIT

JOIN ON

SELECT 列名称 FROM 表1

INNER/LEFT/RIGHT/FULL JOIN 表2

ON 表1.列名称 = 表2.列名称

用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

INNER JOIN:在表中存在至少一个匹配时,返回行。

LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行。

RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行。

FULL JOIN:只要其中一个表中存在匹配,就返回行。

UPDATE与DELETE

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 值

用于修改表中数据

DELETE FROM 表名称 WHERE 列名称 = 值

用于删除表中指定的行

使用UPDATE和DELETE语句时,除非是真的要更新或删除表中所有的行,否则一定要使用WHERE子句。

尽量保证每个表都有主键。

使用前要先用SELECT语句进行测试,保证它过滤的是正确的记录,以防编写的WHERE语句出错。

INSERT INTO

INSERT INTO 表名称 VALUES (值1,值2,….)

向表格中插入指定的行

INSERT INTO 列名称(列1,列2,…) VALUES (值1,值2,…),(值a,值b,…),…

向表格中指定的列插入值(可以是多个行,以括号区分,“,”隔开)

如果没有给出列名,必须给每个表列提供一个值,如果给出了列名,则必须对每个列出的列给出一个值。

INSERT OVERWRITE

-INSERT OVERWRITE 表名称 PARTITION (分区表列1名称=值1,分区表列2名称=值2)

用于重写表中内容,使用分区表可以带来诸多便利,如提高SQL运行效率,减少计费等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql