SQL学习—SELECT语句
来源:互联网 发布:linux查看ssh端口号 编辑:程序博客网 时间:2024/05/29 11:06
SQL之SELECT语句总结:
一、检索数据:
1、检索单列:
SELECT prod_name FROM Products;
2、检索多列:SELECT prod_id,prod_name,prod_price FROM Products;
3、检索所有列:SELECT * FROM Products;
4、检索不同值:加DISTINCT关键字
5、限制结果:用top限制检索的数量,SELECTtop 5 prod_name FROM Products
二、排序检索:
后面加ORDER BY子句,倒序的话后面加DESC
如:SELECT prod_name FROM Products ORDER BY prod_name
三、过滤数据:
1、使用WHERE子句
如:SELECT prod_name,prod_price FROM Products WHERE prod_price BETWEEN 5 AND 10;
2、WHERE子句操作符:=,<>,!=,<,<=,!<,>,>=,!>,BETWEEN,IS NULL
3、用AND、OR操作符连接两个WHERE子句
4、用IN操作符指定范围条件(最大优点是里面可以包含其他SELECT语句)
5、使用LIKE操作符进行通配符搜索(只适用于文本字段) 百分号(%)通配符,%能匹配多个字符:
如:
SELECT prod_name.prod_id FROM Products WHERE prod_name LIKE 'Fish%'SELECT prod_name.prod_id FROM Products WHERE prod_name LIKE '%bean bag%'SELECT prod_name.prod_id FROM Products WHERE prod_name LIKE 'F%y'
6、下划线(_)通配符,一个下划线匹配一个字符:
如:SELECT prod_name.prod_id FROM Products WHERE prod_name LIKE '_ inch teddy bear'
7、方括号([ ])通配符,方括号指定一个集合,匹配指定位置的一个字符:
如:SELECT prod_name.prod_id FROM Products WHERE prod_name LIKE "[JM]%"
四、创建计算字段
1、拼接字段:
如:SELECT vend_name + '(' + vend_country + ')' FROM Vendors ORDEY BY vend_name
2、使用别名:(有别名客户端才能引用它)
如:SELECT vend_name + '(' + vend_country + ')' AS vend_title FROM Vendors ORDEY BY vend_name
3、执行算术计算:
如:SELECT prod_id,quantity,item_price,quantity*item_price AS expanded_price FROM OrderItems WHERE order_num=2008
五、使用函数:
1、文本处理函数:
LEFT() 返回字符串左边字符
LENGTH() 返回字符串的长度
LOWER() 将字符串转换为小写
LTRIM() 去掉字符串左边的空格
RTRIM() 去掉字符串右边的空格2、日期和时间处理函数:
ABS() 返回一个数的绝对值
COS() 返回一个角度的余弦
TAN() 返回一个角度的正弦
EXP() 返回一个数的指数值
PI() 返回圆周率3、聚集函数:
AVG()函数,返回所选列的平均值
COUNNT()函数,COUNT(*)对表中的行数进行计数,COUNT(column)对特定列具有值得行进行计数
MAX()函数,返回指定列中的最大值
SUM()函数,返回指定列值得和4、组合聚集函数:
如:SELECT COUNT(*) AS num_items,MIN(prod_price) AS price_min,MAX(prod_price) AS
price_max, AVG(prod_name) AS price_avg FROM Products;
六、分组数据:
1、创建分组:使用group by子句
如:SELECT vend_id,COUNT(*) AS num_prods FROM Products GROUP BY vend_id
2、过滤分组:使用having子句
如:SELECT vend_id,COUNT(*) AS num_prods FROM Products GROUP BY vend_id HAVING COUNT(*)>=2
3、分组和排序:group by和order by的区别
七、使用子查询:
1、利用子查询进行过滤:
如:SELECT cust_id FROM Orders WHERE order_num IN (SELECT order_num FROM OrderItems WHERE prod_id='RGAN01')
2、作为计算字段使用子查询:
如:SELECT cust_name,cust_state,(SELECT COUNT(*) FROM Orders WHERE Orders.cust_id=Customers.cust_id) AS orders FROM Customers ORDER BY cust_name
八、联结表(可代替子查询)
1、关系表:把信息分解成多个表,一类数据一个表。各表通过某些共同的值相互关联(关系数据库)
2、等值联结(内联结):
如:SELECT vend_name,prod_name,prod_price FROM Vendors,Products WHERE Vendors.vend_id=Products.vend_id
SELECT vend_name,prod_name,prod_price FROM Vendors INNER JOIN Products ON Vendors.vend_id=Products.vend_id3、高级联结:
使用表别名:SELECT cust_name,cust_contact FROM Customers AS C,Orders AS O,OrderItems AS OI WHERE
C.cust_id=O.cust_id AND OI.order_num=O.order_num AND prod_id=’RGAN01’
自联结:
自然联结:
外联结:左外联结,右外联结
九、组合查询
UNION操作符将多条SELECT 语句组合成一个结果集,要注意的是union中的每个查询必须包含相同的列、表达式或聚集函数。
如:SELECT cust_name,cust_contact,cust_email From Customers WHERE cust_state IN ('IL','IN','MI') UNION
SELECT cust_name,cust_contact,cust_email FROM Customers WHERE cust_name='Fun4All'
其他:
1、注释:–和/* */
- SQL学习—SELECT语句
- SQL学习之:SELECT 语句
- 【SQL Server学习笔记】SELECT语句
- SQL SELECT 和 SELECT * 语句
- SQL Server——SELECT基本语句
- SQL SELECT 语句
- SQL SELECT 语句
- SQL select语句
- 基本 SQL SELECT 语句
- SQL SELECT INTO 语句
- SQL SELECT INTO 语句
- SQL Select Into语句
- sql select语句复习
- SQL SELECT INTO 语句
- SQL SELECT 语句
- SQL SELECT DISTINCT 语句
- SQL SELECT 语句
- SQL SELECT INTO 语句
- BZOJ 4430 赌骆驼
- 几个常用创建型设计模式总结
- [Android Memory] 手动回收ImageVIew的图片资源
- MyBatis
- JAVA工程师面试题
- SQL学习—SELECT语句
- LinuxStudyNote(45)-管道符 | 的使用与解析、| 与 grep的使用
- HSL and HSV
- 前端之路——第一篇:认识前端简单的基础知识
- 最邻近规则分类(K-Nearest Neighbor)KNN算法
- XOR usage
- linux中wget 、apt-get、yum 这三种安装方式的区别是什么?
- svn
- 论文阅读笔记(二)细粒度图像分类