SQL基础学习

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 Products
LIMIT 5;
SELECT prod_name  --返回从第5行起的5行数据
FROM Products
LIMIT 5 OFFSET 5;
SELECT prod_name  --检索数据后排序显示
FROM Products
ORDER BY prod_name;
SELECT prod_id, prod_price, prod_name  --多个列排序,以先后顺序依次排序
FROM Products
ORDER BY prod_id, prod_price;
SELECT prod_id,prod_price,prod_name --按列位置排序
FROM Products
ORDER BY 2, 3;
SELECT prod_id,prod_price,prod_name  --制定排序方向,默认升序,指定DESC(降序),如果想在多个列进行降序排序,必须对每一列指定DESC关键字
FROM Products
ORDER BY prod_price DESC;
SELECT prod_name, prod_price  ——指定检索条件,只返回值为3.49的列
FROM Products
WHERE prod_price = 3.49;

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

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

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

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

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

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

SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')' AS vend_titile
FROM Vendors
ORDER BY vend_name;

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

SELECT prod_id, quantity, item_price,
              quantity * item_price AS expanded_price
FROM OrderItems
WHERE order_num = 20008
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值