检索数据

检索单个列:
SELECT pname FROM product 检索多个列:
SELECT pname,market_price,is_hot FROM product 检索所有列:
SELECT * FROM product 过滤检索结果中的重复数据:
SELECT DISTINCT market_price FROM product
DISTINCT关键字:
1、返回不同的值,使用时放在列名的前面
2、多查询一个及以上列时,除非你查询的所有列的数据都不同,否则所有行都将被检索出来 限制检索结果:
SELECT pname FROM product LIMIT 5,5
limit5,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 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'

  

正则表达式搜索

基本字符串匹配

SELECT pname FROM product WHERE pname REGEXP '韩版' ORDER BY pname
使用正则表达式需要用REGEXP关键字,并在REGEXP后面跟上正则表达式内容 SELECT pname FROM product WHERE pname REGEXP '.版' ORDER BY pname
.是正则表达式语言中一个特殊的字符。它表示匹配任意一个字符 Mysql中的正则表达式不区分大小写,如果要区分大小写可以使用BINARY
SELECT 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
\\. 匹配特殊字符.
[: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 pname
CONCAT()需要一个或多个指定的串,各个串之间用逗号分隔。 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 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 要检索的行数 否

数据库——数据库SQL语句大全,最常用的SQL语句的更多相关文章

  1. 数据库SQL语句大全——最常用的SQL语句

    检索数据: 检索单个列: SELECT pname FROM product 检索多个列: SELECT pname,market_price,is_hot FROM product 检索所有列: S ...

  2. 经典MSSQL语句大全和常用SQL语句命令的作用

    下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL类型包括数据库.表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类 ...

  3. SQL之50个常用的SQL语句

    50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...

  4. SQL语句大全,所有的SQL都在这里

    转自微信公众号-我是程序汪 一.基础 1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...

  5. 干货|SQL语句大全,所有的SQL都在这里了(建议收藏)

    一个执着于技术的公众号 一.基础 1.登录数据库 mysql -uroot -p123123 2.创建数据库 create database <数据库名> 3.删除数据库 drop dat ...

  6. SQL注入之MySQL常用的查询语句

    MySQL是一种使用很广的数据库,大部分网站都是用MySQL,所以熟悉对MySQL数据库的注入很重要. 首先来说下MySQL注入的相关知识点 在MySQL5.0版本之后,MySQL默认在数据库存放一个 ...

  7. 经典面试题sql基础篇-50常用的sql语句(有部分错误)

    Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题 ...

  8. Sql Server语句大全

    T-SQL语句大全 --跳转到SQL myDemo USE [SQL myDemo] go --声明变量id declare @id int --为变量赋值:直接赋值 --将cid为3的cname值赋 ...

  9. MYSQL查询语句大全集锦

    MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...

  10. WordPress 常用数据库SQL查询语句大全

    在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容等等.这个时候,使用SQL查询语句可以大大简化我们的工作量. 关于如何操作SQL查询语 ...

随机推荐

  1. CH5701 开车旅行(倍增dp+set)

    传送门 解题思路: 一道比较有趣的题,解题工作主要分为两块: ①找出k(k=0表示小A先走,k=1表示小B先走,下面同理)从点i出发下一个到达的点to[k][i]; 一开始偷懒用了vector(偷懒一 ...

  2. AJ学IOS(16)UI之XIB自定义Cell实现团购UI

    AJ分享,必须精品 先看效果图 自定义Cell 本次主要是自定义Cell的学习 实现自定义Cell主要有三种方法:按照使用的频繁度排序: XIB > 纯代码 > StoryBoard XI ...

  3. python填写问卷星,疫情上报

    #!!!注意:修改main里的url为真实的url,按需修改 50行 set_data中的submitdata # 61行 ip 修改为 真ip # submittype可能有错误,在151行 # 提 ...

  4. Python语言-selenium webdriver操作记录汇总

    1.控制浏览器大小 set_window_size() 设置浏览器大小 该方法有两个参数,第一个参数是宽,第二个是高 maximize_window() 设置浏览器全屏显示,无参数 chrome谷歌浏 ...

  5. VXLAN 基础教程:在 Linux 上配置 VXLAN 网络

    上篇文章结尾提到 Linux 是支持 VXLAN 的,我们可以使用 Linux 搭建基于 VXLAN 的 overlay 网络,以此来加深对 VXLAN 的理解,毕竟光说不练假把式. 1. 点对点的 ...

  6. C - Highways poj1751最小生成树

    The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has a very poor system of p ...

  7. selenium Webdriver多窗口切换

    应用场景: 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时候就需要主机切换到新打开的窗口上进行操作.WebDriver提供了switch_to.window()方法,可以实现在不同的窗口直接切 ...

  8. Matlab学习-(4)

    1. 函数 1.1 原始方法 之前我调用函数的方法是,首先写好函数文件,然后保存,然后在主函数中调用.这种方法的不足在于会导致你的工作目录的文件太多,从而导致很乱.在网上找了一些解决方法. 1.2 本 ...

  9. xshell下使用vim的编辑一个文件Ctrl+S和Ctrl+Q

    xshell下使用vim的编辑一个文件,保存的时候习惯性的按了Ctrl+S 结构悲剧了.屏幕锁死了.按其他键都没有反应,exc也不行. 经过问度娘才知道. 原来Ctrl+S在Linux里,是锁定屏幕的 ...

  10. redis: 配置文件详解(十一)

    #通用配置 bind 127.0.0.1 #绑定可访问的ip 默认本机访问,如果bind选项为空的话,那会接受所有来自于可用网络接口的连接,也可以绑定指定ip访问 protected-mode yes ...