SQL基础学习

来源:互联网 发布:网络老虎机破解方法 编辑:程序博客网 时间:2024/06/06 04:17

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是一种专门用来与数据库沟通的语言。

本文使用SQLite3测试。

SELECT prod_id  --利用SELECT语句从Products表中检索一个名为prod_name的列FROM Products;
SELECT prod_id, prod_name, prod_price --检索多个列FROM Products;
SELECT *  --检索所有列FROM Products;
SELECT DISTINCT vend_id  --检索不同的值FROM Products;
SELECT prod_name  --限制结果,返回不超过5行的值FROM ProductsLIMIT 5;
SELECT prod_name  --返回从第5行起的5行数据FROM ProductsLIMIT 5 OFFSET 5;
SELECT prod_name  --检索数据后排序显示FROM ProductsORDER BY prod_name;
SELECT prod_id, prod_price, prod_name  --多个列排序,以先后顺序依次排序FROM ProductsORDER BY prod_id, prod_price;
SELECT prod_id,prod_price,prod_name --按列位置排序FROM ProductsORDER BY 2, 3;
SELECT prod_id,prod_price,prod_name  --制定排序方向,默认升序,指定DESC(降序),如果想在多个列进行降序排序,必须对每一列指定DESC关键字FROM ProductsORDER BY prod_price DESC;
SELECT prod_name, prod_price  ——指定检索条件,只返回值为3.49的列FROM ProductsWHERE prod_price = 3.49;

WHERE子句操作符:
= 等于 <> 不等于
!= 不等于 < 小于
<= 小于等于 !< 不小于
‘>’大于 >=大于等于
!> 不大于 BETWEEN 在指定的两个值之间
IS NULL 为NULL值

SELECT prod_name, prod_price  ——范围值检查,检索价格在510之间的值FROM ProductsWHERE prod_price BETWEEN 5 AND 10;
SELECT cust_name  ——空值检查,只检索email为空的客户名FROM CustomersWHERE cust_email IS NULL;
SELECT prod_id, prod_price, prod_name ——检索由供应商DLL01制造并且价格等于4.9的商品FROM ProductsWHERE prod_id = 'DLL01' AND prod_price = 4.9;
SELECT prod_name, prod_price ——OR操作符匹配任一条件而不是匹配两个条件FROM ProductsWHERE vend_id = 'DLL01' OR vend_id = 'BRS01';
SELECT prod_name, prod_price  ——求值顺序AND优先级高于OR,建议使用圆括号消除歧义FROM ProductsWHERE(vend_id='DLL01' OR vend_id='BRS01')                                                                  AND prod_price >= 10
SELECT prod_name, prod_price --检索由供应商DLL01和BRS01制造的所有产品FROM ProductsWHERE vend_id IN ( 'DLL01', 'BRS01')ORDER BY prod_name;
SELECT prod_name, prod_price ——与上一功能相同FROM ProductsWHERE vend_id = 'DLL01' OR vend_id = 'BRS01'ORDER BY prod_name;
SELECT prod_name  --检索非DLL01之外的所有东西FROM ProductsWHERE NOT vend_id = 'DLL01'ORDER BY prod_name;
SELECT prod_id, prod_name  --使用通配符LIKE关键字和%,检索任意以Fish起头的词,不管Fish之后有多少字符FROM ProductsWHERE prod_name LIKE 'Fish%';
SELECT prod_id, prod_name  --搜索模式'%bean bag%'表示匹配任何位置上包含文本bean bag的值,不论它之前或之后出现什么字符FROM ProductsWHERE prod_name LIKE '%bean bag%';
SELECT prod_name  --检索以F起头、以y结尾的所有产品FROM ProductsWHERE prod_name LIKE 'F%y';
SELECT prod_id, prod_name  --一个下划线通配符匹配单个字符,可使用多个下划线。FROM ProductsWHERE prod_name LIKE '_ inch teddy bear'

创建计算字段,将检索的数据转换为应用程序所需要的格式,计算字段是运行时在SELECT语句内创建的。

SELECT vend_name || ' (' || vend_country || ')' --将检索的值以某种形式拼接到一起,类似于字符串拼接,SQLite使用||符号,其他DBMS可能使用函数或者+FROM VendorsORDER BY vend_name;

大多数DBMS都支持RTRIM(),它去掉字符串右边的空格)、LTRIM()去掉字符串左边的空格)以及TRIM()(去掉字符串左右两边的空格)

别名(alias)是一个字段或值的替换名。以下使用关键字AS创建别名vend_titlie。

SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')' AS vend_titileFROM VendorsORDER BY vend_name;

执行算术运算,对检索出的数据进行算术计算。下面输出中显示的expanded_price列是一个计算字段,此计算为quantity * item_price。 SQL算术操作符:+-*/。

SELECT prod_id, quantity, item_price,              quantity * item_price AS expanded_priceFROM OrderItemsWHERE order_num = 20008
0 0