抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

SQL

概述

SQL(Structured Query Language,SQL) 结构化英语查询语言,非过程性语言。集数据定义语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)三大功能于一体。

SQL的几个动词

SQL 功能 动词
数 据 查 询 SELECT
数 据 定 义 CREATE,DROP,ALTER
数 据 操 纵 INSERT,UPDATE,DELETE
数 据 控 制 GRANT,REVOKE

检索 select

  1. 如非必须,少用通配符 *,影响性能。
  2. 输出中行的值重复了:使用 DISTINCT 关键字,必须放在”列“前,且不对部分使用,是对全体列使用。
  3. 返回部分行:不同的DBMS语句不同。SQL Server eg:
    select top 5 score from Course;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- MySQL输出前几行,limit输出不超过指定行数。
select prod_name
from Products
limit 3;

-- 返回从第几行起的多少行数据
-- limit指定返回的行数,offset指定从哪一行开始。第一行从0开始,即第0行。
select prod_name
from products
limit 5 offset 0;
-- 上述也可简写为:
select prod_name
from products
limit 0,5;

注释

SQL三种注释

1
2
3
4
5
-- 单行注释
# 单行注释
/*
多行注释
*/

函数

  1. left(属性名,数字x) 表示取属性值的最左边x个字符
  2. right(属性名,数字x) 表示取属性值的最右边边x个字符
  3. lower(属性名) 表示将属性值的字母都变成小写
  4. upper(属性名)表示将属性值的字母都变成大写
  5. substring(属性名,起始位置L,长度x)取属性值起始位置L开始,长度为x的子串
  6. ltrim(属性名)去除属性值最左边的空格
  7. rtrim(属性名)去除属性值最右边的空格
  8. trim(属性名)去除属性值首尾空格
  9. replace(属性名,’目标’,’替代品’)将属性中的目标替换为替代品
  10. len(属性名)取属性值的字符串长度

order by

  1. 要使用在句末,否则报错;
  2. 多行排序时,要求按多个属性排序,则先按第一个属性排序,再在此基础上按第二个属性,以此类推。eg: order by pro_price,pro_name 先按商品价格排序,价格相同则按商品名称排序。
  3. 升降序:DESC(descending)降序、ASC(ascending)升序。默认升序。

where

where子句操作符

操作符说
= 等于
!= 或 < > 不等于
< 小于
<= 或 !> 小于等于
> 大于
>= 或 !< 大于等于
BETWEEN 在指定的两个值之间
IS NULL 为NULL值

通配符

  1. like
    1. %通配符
      1
      2
      3
      SELECT prod_name
      FROM Products
      WHERE prod_name LIKE 'F%y';
    2. 下划线(_)通配符
    3. 方括号([])——仅 AccessSQL Server 支持

%匹配一个字符及以上;而下划线只能匹配一个字符。

使用通配符技巧

  • 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用
    其他操作符。
  • 在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始
    处。把通配符置于开始处,搜索起来是最慢的。
  • 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

评论

Gitalk评论系统对接至Github Issue,随心评论🐾🐾.....