SQL 常用关键字释义和用法
来源:互联网 发布:网络架构师培训 编辑:程序博客网 时间:2024/05/17 06:17
下面 是 从网络上整理 出来的 SQL 关键字和 常用函数的 释义和简单用法。
1.1 SELECT
SELECT 语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。语法:SELECT 列名 FROM 表名SELECT * FROM 表名eg:select * from table_a;
1.1.1 DISTINCT
去除查询的结果集中去掉相同行的内容,留下不同的内容。语法:
SELECT DISTINCT(列名) FROM 表名select distinct(id) from table_a;
1.1.2 TOP
TOP子句用于规定要返回的记录数目。但并不是所有的数据库都支持该子句,比如MySql中就是用 LIMIT。
SQL Server语法:
SELECT TOP 数字|percent 列名 FROM 表名eg: select top 3 * from table_a --查找表中的前3条数据eg:select top 30 percent from table_a --查找表中的前30%数据MySql 语法:SELECT 列名 FROM 表名 LIMIT 条数eg: select * from table_a LIMIT 40--查询前40条数据
Oracle语法:
SELECT 列名 FROM 表名 WHERE ROWNUM <=条数eg:select * from table_a where rownnum <=5 --读取表中前5行数据
1.1.3 LIKE
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
- like 语句常常与 SQL通配符一起使用:
- % :替代一个或多个字符
- _:替代一个字符
- [charlist]:字符列表中任何一字符
- [~charlist]:
- 或[!charlist]:不存在字符列表中任意字符
语法:
SELECT 列名 FROM 表名 WHERE 列名 LIKE 判断方式eg: select * from table_a where value like '%123' --查找 表中 value 值 以123作结尾的项eg: select * from table_a where value like '123_' -- 查找表中 值以123开头的,长度为4的所有项eg: select * from table_a where value like '[ABC]%' --查询表中值以A,,B,C任意字符开头的项eg: select * from table_a where value like '[!ABC]%' --查询表中值不以A,,B,C任意字符开头的项
1.2 INSERT INTO
INSERT INTO 像表格中插入新的行语法:
INSERT INTO 表名 VALUES(值1,值2);INSERT INTO 表名(列名1,列名2)values(值1,值2);
1.3 UPDATE
update修改表中的数据语法:
UPDATE 表名 SET 列名= 新值 WHERE 逻辑判断eg: update table_a set value='123' where id=1;
1.3 DELETE
delete用于删除表中的行
语法:
DELETE FROM 表名 WHERE 逻辑判断eg: DELETE table_a WHERE id = 1
2. 1 WHERE
对要进行操作的表进行条件的判定补充(整删改查)。
语法:
[SELECT][DELETE][UPDATE] 表 WHERE 运算符判定eg: select * from table_b where id=1
2.1.1 AND 和 OR 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。语法:
[SELECT][UPDATE][DELETE] 表 WHERE 逻辑表达 [AND][OR] 逻辑表达上eg:select * from table_a where id=1 AND value='wangch';eg:select * from table_a where id=1 or value='wangch';
2.1.2 ORDER BY
ORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照升序对记录进行排序。
- DESC:按降序进行排列(默认)。
- ASC:按升序进行排列。
语法:SELECT 列名 FROM 表名 ORDER BY 列名 [DESC][ASC]eg:select * from table_a order by id desc
2.1.3 IN
IN操作符允许我们在WHERE 子句中规定多个值
语法:
SELECT 列名 FROM 表名 WHERE 列名 IN(值1,值2,值3)eg: select * from table_a where id in (1,2,3) -- 查询 表中id 分别为 1,2,3的结果
2.1.4 BETWEEN ...AND...
BETWEEN AND 会选取介于2个值之间的数据范围。
- 数值
- 文本
- 日期
3.1 别名
在做查询操作的时候,可以给查询的数据库指定一个别名(Alias),以方便在后边书写其他逻辑判断
表别名语法:
SELECT 列名 FROM 表名 AS 别名
列别名语法:SELECT 列名 AS 列别名 FROM 表名
不做别名查找:
SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons, Product_OrdersWHERE Persons.LastName='Adams' AND Persons.FirstName='John'
做别名查找:SELECT po.OrderID, p.LastName, p.FirstNameFROM Persons AS p, Product_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'
可以看出 使用别名可以使语句更简洁和易于阅读。
3.2 with
with 常常与as 连用,将查询到的结果暂时存储到一张虚表当中,然后再做操作。
语法:
with 虚表名 as (数据查询结果);eg: with a as (SELECT * FROM table_a);select * from a
3.2 JOIN
各个表可能由于某种约束(外键等)而相关,JOIN可以根据这些关系,实现表的结合查询。
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。
我们就需要执行 join。数据库中的表可通过键将彼此联系起来。
主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。
在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
语法:
SELECT 列名 FROM 表名A JOIN 表名B ON 条件
其中如果不实用JOIN查询操作SQL语句如下的话:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM Persons, OrdersWHERE Persons.Id_P = Orders.Id_P
使用JOIN查询SQL语句如下:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.Id_P = Orders.Id_P其中 具有不同的SQL JOIN 方式
- JOIN | INNER JOIN: 如果表中有至少一个匹配,则返回行 内连接
- LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 左连接
- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 右连接
- FULL JOIN: 只要其中一个表中存在匹配,就返回行 全连接
3.3 UNION
union 用户合并多个SELECT 的查询结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
语法:
SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2UNION 默认省略相同的值,如果不需要省略,请用UNION ALL。
3.3 SELECT INTO
SELECT INTO 语句从一个表中选取数据,然后插入到另外一个表中。语法:
SELECT 列名 INTO 新表名 FROM 旧表 WHERE 逻辑判断
注意MySql 中不支持 SELECT INTO 字句!替换用法为 INSERT INTO
比如 2个相同结构表A,B中B的数据插入A的数据 可以这样写
INSERT INTO A SELECT * FROM B WHERE ...将制定字段插入新表
INSERT INTO A(key,value) select key,value from B WHERE ...
4.1 GROUP BY
GROUP BY语句用于结合统计函数,根据一个或多个列结果集进行分组。
语法:
SELECT 列名|function(列名) FROM 表名GROUP BY 列名
4.2 HAVING
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
语法:
SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVING aggregate_function(column_name) operator value
5. 0 SQL函数
内建SQL函数的用法如下:
SELECT function(列) FROM 表其中内建函数分为:
- Aggregate 函数 (合计函数)
- Scalar 函数
Aggregate 函数
Scalar 函数
Scalar 函数的操作面向某个单一的值,并返回基于输入值的一个单一的值。
- SQL 常用关键字释义和用法
- sql关键字top和apply的用法
- T-SQL常用关键字和语法
- T-SQL常用关键字和语法
- SQL union关键字用法
- SQL关键字用法
- SQL常用关键字
- Sql语句常用关键字
- SQL 常用关键字
- SQL常用关键字
- 【android】build.prop和常用属性的释义
- Oracle listagg用法释义
- VB常用术语释义
- OpenMP常用指令释义
- wget 常用参数释义
- U3D常用英文释义
- Hibernate 常用注解释义
- Symbian中IMPORT_C关键字释义
- Matlab直线拟合的原理和代码
- java操作Excel的神奇之路
- html 捕捉回车键 且同时屏蔽掉该回车键
- 内存映射文件原理探索
- linux 中断处理流程
- SQL 常用关键字释义和用法
- 如何将曲谱的各音符转换成频率数组和持续时间
- arm linux中断向量注册分析,linu系统调用分析
- ubuntu12.10安装netbeans
- 那些年javaweb自定义标签详解
- 五猴分桃
- 防止页面重复提交(使用UUID--Session)
- xcode4.3 如何建立UIViewCOntroller subclass
- MVC模式(简单模拟计算器)