mysql的sql语句⼤全_数据库SQL语句⼤全——最常⽤的SQL
语句
检索数据:
检索单个列: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
mvc架构文档过滤数据:
使⽤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
matlab函数拟合pname,market_price FROM product WHERE market_price>800 价格在800到10000之间SELECT pname,market_price FROM product WHERE market_price BETWEEN 800 AND 10000 where中的操作符有以下⼏个= 等于<> 不等于!= 不等于< ⼩于<= ⼩于等于> ⼤于>= ⼤于等于BETWEEN 在指定的两个值之间
数据过滤:组合where语句 and操作符(同时符合where后⾯的条件)SELECT pname,market_price FROM product WHERE
market_price>1000 AND is_hot=0 or操作符(只需要符合where后⾯的⼀个条件的结果都会显⽰出来)SELECT pname,market_price FROM product WHERE market_price>1000 OR is_hot=0 IN操作符(⽤来指定条件范围)SELECT pname,market_price FROM product WHERE market_price IN(238,19800,1120) ORDER BY pname NOT操作符(否定它之后所跟的条件)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'
c语言代码的软件正则表达式搜索基本字符串匹配 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 pname OR匹配SELECT pname FROM product WHERE pname REGEXP 'a|b' ⼏种常见的正则表达式[0-9] 匹配0-9之间的数字[123] Ton 匹配1 Ton或者2 Ton或者3 Ton\\. 匹配特殊字符.[:alnu
mysql语句分类>前端开发工具免费m:] 任意字母和数字(同[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
shellsh脚本for循环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 product SELECT MAX(market_price) FROM product SELECT SUM(market_price) FROM product
分组数据分组函数GROUP BY 按照名称分组,查询出表中相同名称的商品各有多少件SELECT pname,COUNT(*) FROM product GROUP BY pname HAVING 过滤分组SELECT pname,COUNT(*) FROM product GROUP BY pname HAVING COUNT(*)>2 HAVING和WHERE的差别 这⾥有另⼀种理解⽅法,WHERE在数据分组前进⾏过滤,HAVING在数据分组后进⾏过滤。这是⼀个重要的区别,WHERE排除的⾏不包括在分组中。这可能会改变计算值,从⽽影响HAVING⼦句中基于这些值过滤掉的分组。 SELECT语句的执⾏顺序 SELECT 要返回的列或表达式 是FROM 从中检索数据的表 仅在从表选择数据时使⽤WHERE ⾏级过滤 否GROUP BY 分组说明 仅在按组计算聚集时使⽤HAVING 组级过滤 否ORDER BY 输出排序顺序 否LIMIT 要检索的⾏数 否
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论