博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库SQL语句大全——最常用的SQL语句
阅读量:5214 次
发布时间:2019-06-14

本文共 4503 字,大约阅读时间需要 15 分钟。

检索数据:

检索单个列:SELECT pname FROM product检索多个列:SELECT pname,market_price,is_hot FROM product检索所有列:SELECT * FROM product过滤检索结果中的重复数据:SELECT DISTINCT market_price FROM productDISTINCT关键字:1、返回不同的值,使用时放在列名的前面2、多查询一个及以上列时,除非你查询的所有列的数据都不同,否则所有行都将被检索出来限制检索结果:SELECT pname FROM product LIMIT 5,5limit5,5指示mysql返回从行5开始的5行记录

  

排序检索数据:

排序数据SELECT pname FROM product ORDER BY pname按多个列排序数据SELECT pid,market_price,pname FROM product ORDER BY market_price,pname按多个列排序时,排序列之间用,隔开,并且按列的顺序来排序数据,先排价格,后排名称指定排序方向降序排序(按照价格降序排序)SELECT pid,market_price,pname FROM product ORDER BY market_price DESC升序排序(mysql查询时默认就是升序排序)SELECT pid,market_price,pname FROM product ORDER BY market_price ASC找出价格最贵的商品(使用order BY 和limit关键字)SELECT market_price FROM product ORDER BY market_price DESC LIMIT 1

  

过滤数据:

使用WHERE子句价格等于19800的商品SELECT pname,market_price FROM product WHERE market_price=19800价格小于于19800的商品SELECT pname,market_price FROM product WHERE market_price<19800价格大于800的商品SELECT pname,market_price FROM product WHERE market_price>800价格在800到10000之间SELECT pname,market_price FROM product WHERE market_price BETWEEN 800 AND 10000where中的操作符有以下几个=  等于<> 不等于!= 不等于<  小于<= 小于等于>  大于>= 大于等于BETWEEN 在指定的两个值之间

  

数据过滤:

组合where语句and操作符(同时符合where后面的条件)SELECT pname,market_price FROM product WHERE  market_price>1000 AND is_hot=0or操作符(只需要符合where后面的一个条件的结果都会显示出来)SELECT pname,market_price FROM product WHERE  market_price>1000 OR is_hot=0IN操作符(用来指定条件范围)SELECT pname,market_price FROM product WHERE market_price IN(238,19800,1120) ORDER BY pnameNOT操作符(否定它之后所跟的条件)SELECT pname,market_price FROM product WHERE market_price NOT IN(238,19800,1120) ORDER BY pname

  

用通配符进行过滤

like操作符(通配符 模糊搜索)%通配符(找出product表中所有商品名以韩版开头的商品)SELECT pname FROM product WHERE pname LIKE '韩版%'找出product表中商品名称含有“女”的商品,不管开头结尾是什么内容SELECT pname FROM product WHERE pname LIKE '%女%'下划线_通配符(用途和%一样,不过_只匹配单个字符)SELECT pname,market_price FROM product WHERE market_price LIKE '_99'

  

正则表达式搜索

基本字符串匹配SELECT pname FROM product WHERE pname REGEXP '韩版' ORDER BY pname使用正则表达式需要用REGEXP关键字,并在REGEXP后面跟上正则表达式内容SELECT pname FROM product WHERE pname REGEXP '.版' ORDER BY pname.是正则表达式语言中一个特殊的字符。它表示匹配任意一个字符Mysql中的正则表达式不区分大小写,如果要区分大小写可以使用BINARYSELECT pname FROM product WHERE pname REGEXP BINARY 'Abc' ORDER BY pnameOR匹配SELECT pname FROM product WHERE pname REGEXP 'a|b'几种常见的正则表达式[0-9] 	  匹配0-9之间的数字[123] Ton 匹配1 Ton或者2 Ton或者3 Ton\\. 	  匹配特殊字符.[:alnum:] 任意字母和数字(同[a-zA-Z0-9])[:alpha:] 任意字符(同[a-zA-Z])[:blank:] 空格和制表(同[\\t])[:cntrl:] ASCII控制字符(ASCII 0到31和127)[:digit:] 任意数字(同[0-9])[:graph:] 与[:print:]相同,但不包括空格[:LOWER:] 任意小写字母(同[a-z])[:print:] 任意可打印字符[:punct:] 既不在[:alnum:]又不在[:cntrl:]中的任意字符[:SPACE:] 包括空格在内的任意空白字符(同[\\f\\n\\r\\t\\v])[:UPPER:] 任意大写字母(同[A-Z])[:xdigit:] 任意十六进制数字(同[a-fA-F0-9])匹配多个实例* 0个或多个匹配+ 1个或多个匹配(等于{1,})? 0个或1个匹配(等于{0,1}){n} 指定数目的匹配{n,} 不少于指定数目的匹配{n,m} 匹配数目的范围(m不超过255)定位符^ 文本的开始$ 文本的结尾[[:<:]] 词的开始[[:>:]] 词的结尾

  

创建计算字段

连接字段(将商品名称和商品价格连接起来)SELECT CONCAT(pname,'(',market_price,')') FROM product ORDER BY pnameCONCAT()需要一个或多个指定的串,各个串之间用逗号分隔。AS 给字段赋予别名SELECT CONCAT(pname,'(',market_price,')') AS nameAndPrice FROM product ORDER BY pname执行算术运算SELECT pname,market_price,shop_price,market_price+shop_price AS sumprice FROM product

  

使用数据处理函数

文本处理函数LEFT() 返回串左边的字符LENGTH() 返回串的长度LOCATE() 找出串的一个子串LOWER() 将串转换为小写LTRIM() 去掉串左边的空格RIGHT() 返回串右边的字符RTRIM() 去掉串右边的空格SOUNDEX() 返回串的SOUNDEX值SUBSTRING() 返回子串的字符UPPER() 将串转换为大写日期和时间处理函数ADDDATE() 增加一个日期(天、周等)ADDTIME() 增加一个时间(时、分等)CURDATE() 返回当前日期CURTIME() 返回当前时间DATE() 返回日期时间的日期部分DATEDIFF() 计算两个日期之差DATE_ADD() 高度灵活的日期运算函数DATE_FORMAT() 返回一个格式化的日期或时间串DAY() 返回一个日期的天数部分DAYOFWEEK() 对于一个日期,返回对应的星期几HOUR() 返回一个时间的小时部分MINUTE() 返回一个时间的分钟部分MONTH() 返回一个日期的月份部分NOW() 返回当前日期和时间SECOND() 返回一个时间的秒部分TIME() 返回一个日期时间的时间部分YEAR() 返回一个日期的年份部分数值处理函数ABS() 返回一个数的绝对值COS() 返回一个角度的余弦EXP() 返回一个数的指数值MOD() 返回除操作的余数PI() 返回圆周率RAND() 返回一个随机数SIN() 返回一个角度的正弦SQRT() 返回一个数的平方根TAN() 返回一个角度的正切

  

汇总数据

聚集函数AVG() 返回某列的平均值COUNT() 返回某列的行数MAX() 返回某列的最大值MIN() 返回某列的最小值SUM() 返回某列值之和SELECT AVG(market_price) FROM productSELECT MAX(market_price) FROM productSELECT SUM(market_price) FROM product

  

分组数据

分组函数GROUP BY 按照名称分组,查询出表中相同名称的商品各有多少件SELECT pname,COUNT(*) FROM product GROUP BY pnameHAVING 过滤分组SELECT pname,COUNT(*) FROM product GROUP BY pname HAVING COUNT(*)>2HAVING和WHERE的差别 这里有另一种理解方法,WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。这是一个重要的区别,WHERE排除的行不包括在分组中。这可能会改变计算值,从而影响HAVING子句中基于这些值过滤掉的分组。SELECT语句的执行顺序SELECT 要返回的列或表达式 是FROM 从中检索数据的表 仅在从表选择数据时使用WHERE 行级过滤 否GROUP BY 分组说明 仅在按组计算聚集时使用HAVING 组级过滤 否ORDER BY 输出排序顺序 否LIMIT 要检索的行数 否

 

 

  

 

转载于:https://www.cnblogs.com/wgblog-code/p/11498821.html

你可能感兴趣的文章
Jquery操作cookie,实现简单的记住用户名的操作
查看>>
[BZOJ1196][HNOI2006]公路修建问题 二分答案+最小生成树
查看>>
PHP基础入门(二)
查看>>
[Luogu P3119] [USACO15JAN]草鉴定Grass Cownoisseur (缩点+图上DP)
查看>>
【原创】大数据基础之Zookeeper(4)应用场景
查看>>
18款在线代码片段测试工具
查看>>
20.C++- &&,||逻辑重载操作符的缺陷、,逗号重载操作符的分析
查看>>
静态变量数组实现LRU算法
查看>>
在SQL中怎么把一列字符串拆分为多列
查看>>
中文系统 上传file的input显示英文
查看>>
css样式写一个三角形
查看>>
比callback更简洁的链式执行promise
查看>>
android permission
查看>>
javascript获取textarea中所选文本的开始位置、结束位置和选择的文本
查看>>
【译】在Asp.Net中操作PDF - iTextSharp - 使用字体
查看>>
事务备份还原分离附加
查看>>
JSch - Java实现的SFTP(文件上传详解篇)
查看>>
一些注意点
查看>>
.net 文本框只允许输入XX,(正则表达式)
查看>>
C#修饰符
查看>>