您现在的位置是:首页 >技术杂谈 ><SQL>《SQL命令(含例句)精心整理版(1)》网站首页技术杂谈

<SQL>《SQL命令(含例句)精心整理版(1)》

Ealser 2024-06-17 11:28:36
简介<SQL>《SQL命令(含例句)精心整理版(1)》

1 SQL基础

名词概念
数据库(database)定义:数据库指保存有组织的数据的容器。
说明:通常所说的数据库软件称为数据库管理系统(DBMS),数据库是通过DBMS创建和操纵的容器。
表(table)定义:某种特定类型数据的结构化清单。
说明:表名是唯一的。有些数据库使用拥有者的名字做为唯一名的一部分,即相同数据库不能使用两次相同的表名,但不同库可以使用相同的表名。
列(column)定义:表的字段,所有表都是由一个或多个列组成的。
数据类型(datatype)定义:所允许的数据类型。每个列都有相应数据类型,限制或允许该列存储的数据。
行(row)定义:表中的一个记录。又非专业称呼为数据库记录(record)。
主键(primary key)定义:一列(或一组列)的值能够唯一标识表的每一行。
说明:1-不是每个表都一定要定义主键。
SQL语句定义:SQL是Structured Query Language(结构化查询语言)的缩写,专门与数据库沟通的语言。
子句(clause)定义:SQL语句由子句构成,通常由一个关键字加上所提供的数据组成。
说明:有些子句是必需的,有些则是可选的。

2 关键字 select & distinct

名词概念
SELECTSELECT A.COLUMN1 AS Cname1 FROM SCHEMA.TABname WHERE 条件1 A FETCH FIRST 5 ROWS ONLY
说明:按条件1查询A表的COLUMN1列的前5行并重命名列名为Cname1
例1:SELECT * FROM EXD_changeinfo WHERE EXDEBT = ‘9444190000420120121231000010’ and changeno=‘0001’
DISTINCT(唯一值、去重) 定义:DISTINCT告诉DBMS只返回不同的vend_id行。
例1:SELECT DISTINCT vend_id FROM Products
2-4-限制数据说明:SQL Server & Access 使用TOP关键字;db2 用 FETCH FIRST ;MySQL、MariaDB、PostgreSQL或者SQLite用LIMIT.
例1:SELECT TOP 5 prod_name FROM Products;
例2:SELECT prod_name FROM Products LIMIT 5;
例3:SELECT prod_name FROM Products LIMIT 5 OFFSET 6 ;—返回第6行起5行的数据。
例4:SELECT prod_name FROM Products FETCH FIRST 5 ROWS ONLY.

3 排序检索 - order by & desc & asc

名词概念
ORDER BY说明:ORDER BY子句是用来排序的。
例句:SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price,prod_name
注释:例句中是多列排序,多列排序区分先后,先对prod_price进行排序,只有该列不唯一的时候才对prod_name进行排序。
DESC & ASC说明:DESC为DESCENDING的缩写,指倒序,即从大到小;ASC为ASCENDING的缩写,指升序,即从小到大。SQL语句中ORDER BY排序时默认为升序,所以ASC可以省略。

4 where 语句

名词概念
WHERE说明:WHERE字句用来指定搜索条件(search criteria)又称过滤条件(filter confition)。一般跟在from字句之后。
WHERE字句操作符在这里插入图片描述
例句例1:SELECT prod_name,prod_price FROM Products WHERE prod_price < 10
例2:SELECT prod_name,prod_price FROM Products WHERE BETWEEN 5 AND 10
例3:SELECT prod_name,prod_price FROM Products WHERE prod_price IS NULL

5 操作符 -and & or & not & in

名词概念
操作符用来联结或改变WHERE字句中的字句的关键字,也称为逻辑操作符
AND&OR定义:AND操作符的优先顺序高于OR操作符。(以下示例中,例1和2的结果是不一样的。)
例1:SELECT prod_name,prod_price FROM Products WHERE vend_id=‘DLL01’ OR vend_id=‘BRS01’ AND prod_price>=10
例2:SELECT prod_name,prod_price FROM Products WHERE (vend_id=‘DLL01’ OR vend_id=‘BRS01’) AND prod_price>=10
NOT定义:否定其后跟的任何条件。
例1:SELECT prod_name FROM Products WHERE NOT vend_id=‘DLL01’ ORDER BY prod_name
IN定义:IN操作符用来指定条件。
说明:IN操作符比OR操作符速度快。
例句SELECT cust_name,cust_state,(SELECT COUNT(*) FROM Orders WHERE Orders.cust_id = Customers.cust_id) AS orders FROM Customers ORDER BY cust_name

6 通配符

6.1 LIKE % 谓词 下划线 方括号

名词概念
通配符(wildcard)定义:用来匹配值的一部分的特殊字符。
搜索模式(search pattern)定义:由字面值、通配符或两者组合构成的搜索条件。
谓词(predicate)说明:LIKE是谓词。
LIKE操作符说明:LIKE操作符可进行通配搜索。
例1: SELECT prod_id,prod_name FROM Products WHERE prod_name LIKE ‘Fish%’
百分号(%)通配符说明:%表示任何字符出现任意次数。
例1:LIKE ‘Fish%’
例2:LIKE ‘%bean bag%’
例3:LIKE ‘F%y’
下划线(_)通配符说明:下划线和百分号一样,但只能匹配单个字符。DB2不支持下划线。
方括号([])通配符定义:方括号([])通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。
举例:LIKE ‘[JM]%’ 说明:J或者M开头的被筛选出来。
特别:LIKE ‘[^JM]’ 说明:加上^表示J或者M之外开头的被筛选出来。

7 计算、拼接、别名

名词概念
拼接字段||定义:字段(field)与列(column)含义相同;拼接(concatenate)将值联结在一起构成单个值。
说明:ACCESS和SQL Server 用+号;DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用||
举例:SELECT vend_name||‘(’||vend_country||‘)’ From Vendors ORDER BY vend_name
TRIM函数定义:TRIM()去掉字符串左右两边的空格;LTRIM()去掉字符串左边的空格;RTRIM()去掉字符串右边的空格。
举例:SELECT RTRIM(vend_name) || ‘(’ || RTRIM(vend_country) || ‘)’ FROM Vendors ORDER BY vend_name
AS别名(alias)定义:别名是一个字段或值的替换名。又称为导出列。
举例:SELECT RTRIM(vend_name) || ‘(’ || RTRIM(vend_country) || ‘)’ AS vend_title FROM Vendors ORDER BY vend_name
算数计算举例:SELECT quantity,item_price,quantity*item_price AS expanded_price FROM OrderItems WHERE order_num=2008
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。