检索数据

检索单个列: (列名为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语句知识点总结相关推荐

  1. 导出mysql sql语句吗_mysql sql语句导入与导出

    mysql sql语句导入与导出 导入: mysql -u root -p 数据库名 如: C:/mysql/bin>mysql -u root -p house < c:/1-1.txt ...

  2. MySQL sql语句获取当前日期|时间|时间戳

    文章转载于:博客园--水狼一族 文章地址:<MySQL sql语句获取当前日期|时间|时间戳> 一.基础时间函数 1.1 获得当前日期+时间(date + time)函数:now() My ...

  3. mysql sql语句生成日历表

    转载:http://blog.csdn.net/u010363836/article/details/52788358 mysql sql语句生成日历点击打开链接表  (主要用于按月,按天group ...

  4. Mysql SQL语句执行更新或者插入添加条件判断

    Mysql SQL语句执行更新或者插入添加条件判断 – 更新操作 – INSERT INTO materials (ID,Name,Remaining,Total) VALUES (1,'SolidW ...

  5. mysql sql语句执行顺序

    mysql sql语句执行顺序 引言:作为一个程序猿.要想优化sql,首先要明白sql语句的执行顺序.同时防止该死的面试官问一些数据库专业的问题有必要知道这些 sql语句select语句查询顺序 (7 ...

  6. 数据库Mysql——sql语句大全

    注意:练习sql语句之前推荐先安装可视化软件如:SQLyog.Navicat 15 for MySQL 不然就在cmd小黑窗口敲命令练习. 一篇掌握Mysql--sql语句 #注意:sql语句不区分大 ...

  7. mysql sql 语句事务_MySQL: 3、SQL语言 ②约束、事务

    一.SQL 约束 1.约束的作用: 对表中的数据进行进一步的限制,从而保证数据的正确性.有效性.完整性.违反约束的不正确数据将无法插入到表中 2.常见的约束: 3.主键约束: -- 特点: 不可重复. ...

  8. mybatisplus执行sql语句_[MySQL]sql语句的执行流程

    此篇极客时间专栏<MySQL实战45讲>笔记,文中部分图文来自该专栏. MySQL的执行流程示意图: 大体来说,MySQL可以分为Server层和存储引擎层两部分. Server层包括连接 ...

  9. mysql sql语句最大长度设置方法

    今天发现了一个错误:Could not execute JDBC batch update 最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置,也就是说mysql通讯的数据包大小设 ...

最新文章

  1. jmeter学习指南之深入分析跨域传递cookie
  2. windows环境下redis.conf配置文件
  3. [课堂实践与项目]NavigationController与TabBarController的综合使用及易错点分析(包含消息提醒,app更新)...
  4. Dancing Naked in the Mind Field
  5. DataTime转Varchar
  6. 八大排序算法的Python实现
  7. flush privileges
  8. 广度优先搜索——Corn Maze S(洛谷 P1825)
  9. java xml开发_JavaWeb开发(XML简介)---3
  10. iOS底层探索之多线程(十二)—GCD源码分析(事件源dispatch_source)
  11. Microsoft caffe(caffe-windows) cifar实例编译之model的使用
  12. 交叉编译工具链下载地址
  13. C语言zh字符串指针的大小,C语言的一些小技巧,小知识
  14. JSP停车场车位管理系统myeclipse开发oracle数据库BS模式java编程网
  15. 关于sqoop抽取数据时显示ERROR :/QueryResult.java‘ already exists 解读
  16. 光场相机重聚焦原理之——光场的参数化表征
  17. linux挂载03磁盘,Linux_常用命令_03_磁盘/挂载_信息查看(示例代码)
  18. 【youcans 的 OpenCV 例程200篇】124. 孔洞填充的泛洪算法
  19. 【前端学习之HTMLCSS进阶篇】-- CSS第一篇 -- @规则与web字体图标
  20. K8S 安装kubernetes-dashboard大坑解决方案

热门文章

  1. 6.10. stack-manager
  2. nginx的root和alias指令的区别
  3. VMware 虚拟机安装OSX el capitan 11.12
  4. User-Defined-Literal自定义字面量
  5. mysql开机自启动设置
  6. Ubuntu14.04安装与卸载ROS(避坑教程)配kinetic版本安装官方网址
  7. myeclipse2017安装与破解
  8. python字符串类型图解_Python基础——数据类型(图解+实例,非常详细!)
  9. 百度 图片文字识别 Python版本
  10. Flutter 萌新高频问题(加班猿妈妈叫你回家吃饭了)