关闭

SQL基础学习

标签: 数据库sqlite3sql
62人阅读 评论(0) 收藏 举报
分类:

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
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:31479次
    • 积分:1309
    • 等级:
    • 排名:千里之外
    • 原创:104篇
    • 转载:3篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论