码迷,mamicode.com
首页 > 数据库 > 详细

SQL 基础

时间:2021-01-13 11:12:23      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:sele   usg   having   通配   struct   products   聚合函数   大小   包括   

SQL基础篇
这里的SQL语句执行的场景都是MYSQL数据库,其他数据库会略有差异。
一、什么是SQL?
SQL是Structured Query Langusge(结构化查询语言)的缩写。SQL是一种专门用来与数据库沟通的语言。
二、检索数据
2.1、检索语句格式:SELECT 列名1,列名2,……列名n FROM 表名 WHERE 检索条件;
例1:

  SELECT prod_name FROM products WHERE prod_id=‘BR01‘;

注:(1) SQL语句不区分大小写,关键字select、from、where等大小写是相同的语句;
(2) select 后可通过 “*” 来代表检索所有列;
(3) 搜索不需要的列通常会降低检索速度和应用程序的性能。
2.2、去重
去重的关键字是:DISTINCT,它必须放在列名前边。
DISTINCT 作用于查询出的所有列,并不只是作用于DISTINCT后边的列。
例2:

  SELECT DISTINCT vend_id FROM products;

2.3、限制结构:LIMIT
LIMIT用来取多少行的数据,有三种格式:LIMIT n;LIMIT n OFFSET m;LIMIT n,m;
LIMIT n 表示取n行,从0行开始区=取;
LIMIT n OFFSET m 表示从m行开始取,取n行;
LIMIT m,n 是上一条的简写,表示从m行开始取,取n行。
例3:

  SELECT prod_name FROM products LIMIT 3,5;

2.4、排序:ORDER BY
排序的关键词是:ORDER BY,格式:ORDER BY 列名1 [ASC|DESC],列名2 [ASC|DESC], 列名n[ASC|DESC]
ASC:按正序排序,默认为ASC,可省略;
DESC:按倒叙排序。
注:ORDER BY 语句应该放在SELECT语句的最后一条,否则会出错。
例4:

  SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price ASC, prod_name DESC;

注:在ORDER BY 后有多列时,先按前面的列排序,前边的列有重复的,所重复的数据在按后边的列排序。
2.5、过滤条件
where后接需要过滤的条件,多个条件用AND或OR连接,AND表示并关系,OR表示或的关系。
注:当where后同时有AND和OR时,优先处理AND。
例5:

  SELECT prod_name,prod_price FROM products WHERE vend_id=‘DLL01‘ OR vend_id=‘BRS01‘ AND prod_price >= 10;

2.6、通配符过滤
通配符是使用LIKE关键字进行模糊匹配的,并且只能用于文本字段。
常用通配符有%、_、[]。
%:匹配多个字符;_匹配单个字符;[]匹配字符集。
例6:

  SELECT * FROM products WHERE prod_name LIKE ‘%bean bag%‘;
  SELECT * FROM products WHERE prod_name LIKE ‘_ inch teddy bear‘;

注:使用通配符检索比普通检索要耗费更长的处理时间。
2.7、聚合函数
聚合函数包括:
AVG():返回某列的平局值;
COUNT():返回某列的行数;
MAX():返回某列的最大值;
MIN():返回某列的最小值;
SUM():返回某列值的和;
例7:

  SELECT AVG(prod_price) AS avg_price FROM products;
  SELECT MAX(prod_price) AS max_price FROM products;
  SELECT MIN(prod_price) AS min_price FROM products;
  SELECT SUM(prod_price) AS sum_price FROM products;
  SELECT COUNT(*) AS num FROM products;

注:使用COUNT(*)计算行数时不忽略空值,使用COUNT(列名)时,忽略空值;max、min、sum都会忽略空值。
2.8、分组
SQL通过关键字GROUP BY 对数据进行分组,使用分组有如下规定:
(1)group by 可以包含任意数量的列,进行分组嵌套;
(2)group by 子句中列出的每一列都必须是检索列或有效的表达式,但不能是聚合函数;
(3) select 语句中的每一列都必须在group by 子句中给出;
(4)group by 必须出现在where之后,order by之前。
例8:

  SELECT vend_id,COUNT(*) AS num_prods FROM products GROUP BY vend_id;

2.9、语句顺序

  SELECT
  FROM
  WHERE
  GROUP BY
  HAVING
  ORDER BY

SQL 基础

标签:sele   usg   having   通配   struct   products   聚合函数   大小   包括   

原文地址:https://www.cnblogs.com/masy-lucifer/p/14264643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有
迷上了代码!