MySQL SQL语句知识点总结
检索数据
检索单个列: (列名为prod_name,表名为products)
SELECT prod_name FROM products;
检索多个列: (列名为prod_id,prod_name,prod_price,表名为products)
SELECT prod_id,prod_name,prod_price FROM products;
检索所有列:(使用星号*通配符)
SELECT * FROM products;
检索不同的行: (使用DISTINCT关键字,指示MySQL只返回不同的值)
SELECT DISTINCT FROM products;
限制返回行数: (使用LIMIT关键字,LIMIT 5指示MySQL返回不多于5行)
SELECT prod_name FROM products LIMIT 5;
限制返回行数和起始位置:(LIMIT 5,5指示MySQL返回从第5行开始的5行)
SELECT prod_name FROM products LIMIT 5,5;
使用完全限定的表名:( products.prod_name同时使用表名和列名指定该列)
SELECT products.prod_name FROM products;
排序检索数据
排序数据: (使用ORDER BY子句,指示MySQL对prod_name列以字母顺序排序数据)
SELECT prod_name FROM products ORDER BY prod_name;
按多个列排序: (仅在多个行具有相同的prod_price值时才按照prod_name进行排序)
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name;
指定排序方向: (使用DESC 关键字,指示降序排序,ASC升序排序是默认排序方向)
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC;
ORDER BY和LIMIT 的组合: (找出一个列中最高或最低的值)
SELECT prod_price FROM products ORDER BY prod_price DESC LIMIT 1;
过滤数据
where子句操作符
= | 等于 |
<> | 不等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
BETWEEN | 在指定的两个值之间 |
检查单个值: (使用WHERE子句,指定搜索条件进行过滤)
SELECT prod_name,prod_price FROM products WHERE prod_price=2.50;
不匹配检查: (过滤出vend_id不等于1003的数据)
SELECT vend_id,prod_name FROM products WHERE vend_id<>1003;
范围值检查: (使用BETWEEN操作符,过滤出prod_price在5~10之间的数据)
SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;
空值检查: (过滤出prod_price 为空值的数据)
SELECT prod_name FROM products WHERE prod_price IS NULL;
对多个列进行过滤: (使用AND操作符,给WHERE字句附加条件)
SELECT prod_id, prod_price,prod_name FROM products
WHERE vend_id=1003 AND prod_price <=10;
匹配条件中的某一个: (使用OR操作符,指示MySQL检索匹配任一条件的行)
SELECT prod_id, prod_price,prod_name FROM products
WHERE vend_id=1003 OR vend_id=1002;
注意:在AND和OR组合的时候,AND再计算次序中的优先级更高。
匹配范围中的条件:(使用IN操作符,指定条件范围,检索vend_id为1002或1003的数据)
SELECT prod_id, prod_price,prod_name FROM products
WHERE vend_id IN (1002,1003);
否定某个条件:(使用NOT操作符,检索除了vend_id为1002或1003的数据)
SELECT prod_id, prod_price,prod_name FROM products
WHERE vend_id NOT IN (1002,1003);
用通配符进行过滤(LIKE)
百分号(%)通配符: (使用%通配符,找到所有以词jet起头的产品,%表示任何字符出现任意多次)
SELECT prod_id,prod_name FROM products WHERE prod_name LIKE ‘jet%’;
注意:根据MySQL的配置方式,搜索可以是不区分大小写的或者是区分大小写的。
下划线(_)通配符: (使用_通配符,下划线只匹配单个字符而不是多个字符)
SELECT prod_id,prod_name FROM products WHERE prod_name LIKE ‘_ ton anvil’;
注意:根据通配符搜索的处理一般要比前面讨论的其他搜索说花时间更长,不要多度使用通配符。
用正则表达式进行搜索(REGEXP)
基本字符匹配: (关键字EXGEXP后所跟的东西作为正则表达式处理,检索列prod_name 包含文本1000的所有行)
SELECT prod_name FROM products
WHERE prod_name REGEXP ‘1000’ ORDER BY prod_name;
注意:LIKE匹配和REGEXP之间有一个重要差别,LIKE匹配整个串,REGEXP匹配子串,如果被匹配的文本在列值中出现,相应的行将被返回。通过用^开始每个表达式,用$结束每个表达式,可以使REGEXP的作用和LIKE一样。
创建计算字段
拼接字段: (使用Concat拼接函数,将值连接到一起构成单个值)
SELECT Concat(vend_name, ‘(’ ,vend_country, ’)’) FROM vendors ORDER BY vend_name;
使用别名: (使用AS关键字,将某一列赋予别名)
SELECT Concat(vend_name, ‘(’ ,vend_country, ’)’) AS vend_title
FROM vendors ORDER BY vend_name;
执行算术计算: (对检索到的数据进行算术计算,MySQL算术操作符有+ - * /)
SELECT prod_id,quantity,item_price,quantity*item_price AS expanded_price FROM vendors ORDER BY vend_name;
使用数据处理函数
SQL支持利用函数来处理数据,函数一般是在数据上执行的。它给数据的转换个处理提供了方便。
文本处理函数
时间和日期处理函数
数值处理函数
汇总数据
求平均值: (使用AVG()函数求平均值,下例使用AVG()返回products表中所有产品的平均价格)
SELECT AVG(prod_price) AS avg_price FROM products;
计数: (使用COUNT()函数确定表中行的数目或符合特定条件的行的数目,下例对表中行的数目进行计数)
SELECT COUNT(*) AS num_cust FROM customers;
对有值行进行计数: (下例使用COUNT(cust_email)对cust_email列中有值的行数进行计数)
SELECT COUNT(cust_email) AS num_cust FROM customers;
取得最大值: (使用MAX()函数返回指定列中的最大值)
SELECT MAX(prod_price) AS max_price FROM products;
取得最小值: (使用MIN()函数返回指定列中的最小值)
SELECT MIN(prod_price) AS min_price FROM products;
总计: (使用SUM()函数返回指定列值的和)
SELECT SUM(quantity) AS item_ordered FROM orderitems WHERE order_num=’20005’;
分组数据(GROUP BY)
创建分组: (使用GROUP BY子句创建分组,下例对每个vend_id 进行一个计数而不是整个表)
SELECT vend_id,COUNT(*) AS num_prods FROM products GROUP BY vend_id;
过滤分组: (WHERE用来过滤行,HAVING用来过滤分组。下例过滤出条数大于等于2的分组)
SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*) >=2;
SELECT子句顺序
子句 | 说明 | 是否必须使用 |
SELECT | 要返回的列或表达式 | 是 |
FROM | 从中检索数据的表 | 仅在从表选择数据的时候 |
WHERE | 行级过滤 | 否 |
GROUP BY | 分组说明 | 仅在按组计算聚集时使用 |
HAVING | 组级过滤 | 否 |
ORDER BY | 输出排序顺序 | 否 |
LIMIT | 要检索的行数 | 否 |
使用子查询
子查询组合两个查询: (一条语句查询的结果作为另一条语句查询的条件)
SELECT cust_id FROM orders
WHERE order_num IN (SELECT order_num FROM orderitems WHERE prod_id =’TNT2’);
MySQL SQL语句知识点总结相关推荐
- 导出mysql sql语句吗_mysql sql语句导入与导出
mysql sql语句导入与导出 导入: mysql -u root -p 数据库名 如: C:/mysql/bin>mysql -u root -p house < c:/1-1.txt ...
- MySQL sql语句获取当前日期|时间|时间戳
文章转载于:博客园--水狼一族 文章地址:<MySQL sql语句获取当前日期|时间|时间戳> 一.基础时间函数 1.1 获得当前日期+时间(date + time)函数:now() My ...
- mysql sql语句生成日历表
转载:http://blog.csdn.net/u010363836/article/details/52788358 mysql sql语句生成日历点击打开链接表 (主要用于按月,按天group ...
- Mysql SQL语句执行更新或者插入添加条件判断
Mysql SQL语句执行更新或者插入添加条件判断 – 更新操作 – INSERT INTO materials (ID,Name,Remaining,Total) VALUES (1,'SolidW ...
- mysql sql语句执行顺序
mysql sql语句执行顺序 引言:作为一个程序猿.要想优化sql,首先要明白sql语句的执行顺序.同时防止该死的面试官问一些数据库专业的问题有必要知道这些 sql语句select语句查询顺序 (7 ...
- 数据库Mysql——sql语句大全
注意:练习sql语句之前推荐先安装可视化软件如:SQLyog.Navicat 15 for MySQL 不然就在cmd小黑窗口敲命令练习. 一篇掌握Mysql--sql语句 #注意:sql语句不区分大 ...
- mysql sql 语句事务_MySQL: 3、SQL语言 ②约束、事务
一.SQL 约束 1.约束的作用: 对表中的数据进行进一步的限制,从而保证数据的正确性.有效性.完整性.违反约束的不正确数据将无法插入到表中 2.常见的约束: 3.主键约束: -- 特点: 不可重复. ...
- mybatisplus执行sql语句_[MySQL]sql语句的执行流程
此篇极客时间专栏<MySQL实战45讲>笔记,文中部分图文来自该专栏. MySQL的执行流程示意图: 大体来说,MySQL可以分为Server层和存储引擎层两部分. Server层包括连接 ...
- mysql sql语句最大长度设置方法
今天发现了一个错误:Could not execute JDBC batch update 最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置,也就是说mysql通讯的数据包大小设 ...
最新文章
- jmeter学习指南之深入分析跨域传递cookie
- windows环境下redis.conf配置文件
- [课堂实践与项目]NavigationController与TabBarController的综合使用及易错点分析(包含消息提醒,app更新)...
- Dancing Naked in the Mind Field
- DataTime转Varchar
- 八大排序算法的Python实现
- flush privileges
- 广度优先搜索——Corn Maze S(洛谷 P1825)
- java xml开发_JavaWeb开发(XML简介)---3
- iOS底层探索之多线程(十二)—GCD源码分析(事件源dispatch_source)
- Microsoft caffe(caffe-windows) cifar实例编译之model的使用
- 交叉编译工具链下载地址
- C语言zh字符串指针的大小,C语言的一些小技巧,小知识
- JSP停车场车位管理系统myeclipse开发oracle数据库BS模式java编程网
- 关于sqoop抽取数据时显示ERROR :/QueryResult.java‘ already exists 解读
- 光场相机重聚焦原理之——光场的参数化表征
- linux挂载03磁盘,Linux_常用命令_03_磁盘/挂载_信息查看(示例代码)
- 【youcans 的 OpenCV 例程200篇】124. 孔洞填充的泛洪算法
- 【前端学习之HTMLCSS进阶篇】-- CSS第一篇 -- @规则与web字体图标
- K8S 安装kubernetes-dashboard大坑解决方案
热门文章
- 6.10. stack-manager
- nginx的root和alias指令的区别
- VMware 虚拟机安装OSX el capitan 11.12
- User-Defined-Literal自定义字面量
- mysql开机自启动设置
- Ubuntu14.04安装与卸载ROS(避坑教程)配kinetic版本安装官方网址
- myeclipse2017安装与破解
- python字符串类型图解_Python基础——数据类型(图解+实例,非常详细!)
- 百度 图片文字识别 Python版本
- Flutter 萌新高频问题(加班猿妈妈叫你回家吃饭了)