SQL基础教程:入门必备知识

一、什么是 SQL?

SQL 指结构化查询语言
SQL 使我们有能力访问数据库
SQL 是一种 ANSI(美国国家标准化组织) 的标准计算机语言

二、SELECT 语法

Persons表
Id  LastName    FirstName     Address               City
1   Adams        John         Oxford Street         London
2   Bush         George       Fifth Avenue          New York
3   Carter       Thomas       Changan Street        Beijing
4   Carter        William       Xuanwumen           Beijing

单表查询查询

SELECT LastName,FirstName FROM Persons

结果
LastName    FirstName
Adams         John
Bush          George
Carter        Thomas

三、DISTINCT 语句

Orders表:
Company       OrderNumber
IBM             3532
W3School        2356
Apple           4698
W3School        6953

语法:

SELECT DISTINCT Company FROM Orders

结果
Company
IBM
W3School
Apple

四、WHERE 子句

WHERE 子句的运算符

操作符          描述
=               等于
<>              不等于
>               大于
<               小于
>=            大于等于
<=            小于等于
BETWEEN       在某个范围内
LIKE          搜索某种模式

查询上面Persons 表,查询所在Beijing的人

SELECT * FROM Persons WHERE City='Beijing'

Id  LastName    FirstName     Address               City
3   Carter       Thomas       Changan Street        Beijing
4   Carter        William       Xuanwumen           Beijing

五、AND 和 OR 运算符

AND语法:

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

结果
Id  LastName    FirstName     Address               City
3   Carter       Thomas       Changan Street        Beijing

OR语法:

SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'

结果
Id  LastName    FirstName     Address               City
3   Carter       Thomas       Changan Street        Beijing
4   Carter        William       Xuanwumen           Beijing

结合 AND 和 OR 运算符语法

SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter

结果
LastName    FirstName   Address          City
  Carter    Thomas      Changan Street  Beijing
  Carter    William     Xuanwumen       Beijing

六、ORDER BY 语句

SELECT Company, OrderNumber FROM Orders ORDER BY Company ASC

结果:
Company   OrderNumber
Apple       4698
IBM         3532
W3School    6953
W3School    2356

跟多个参数

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber ASC

结果:
Company     OrderNumber
Apple       4698
IBM         3532
W3School    2356
W3School    6953

属性ASC和DESC 默认ASC正序,DESC逆序

七、INSERT INTO 语句

插入新的行

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen', 'Beijing')

在指定的列中插入数据

INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

八、Update 语句

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
会将LastName = 'Wilson'的列的FirstName 改为'Fred'

九、DELETE 语句

删除某行

DELETE FROM Person WHERE LastName = 'Wilson'

删除所有行

DELETE FROM Person

十、TOP 子句 返回规定的数目

MySQL 语法:

SELECT * FROM PersonsLIMIT 5
返回5条结果集

Oracle 语法

SELECT * FROM Persons WHERE ROWNUM <= 5
返回5条结果集

十一、LIKE 操作符

使用方法 LIKE 'N%' OR LIKE '%N' OR LIKE '%N%'

SELECT * FROM Persons WHERE City LIKE 'N%'

结果
     LastName   FirstName       Address              City
2     Bush       George       Fifth Avenue          New York

十二、通配符

  通配符   描述
    %     替代一个或多个字符
    _     仅替代一个字符

SELECT * FROM Persons WHERE FirstName LIKE '_eorge'

结果
     LastName   FirstName       Address              City
2     Bush       George       Fifth Avenue          New York

十三、IN 语法

SELECT * FROM Persons WHERE LastName IN ('Adams','Bush')

结果:
Id  LastName    FirstName     Address               City
1   Adams        John         Oxford Street         London
2   Bush         George       Fifth Avenue          New York

十四、BETWEEN 操作符

SELECT * FROM Persons WHERE ID BETWEEN 1 AND 2

结果:
Id  LastName    FirstName     Address               City
1   Adams        John         Oxford Street         London
2   Bush         George       Fifth Avenue          New York

十五、多表联查

用户表 USERS
ID  NAME  AGE
1   张三  20
2   李四  18
3   王五  16
商品表 COMMODIT
ID  NAME    JIAGE
1   方便面    5
2   火腿      3
3   饮料      4
订单表 ORDERS
ID  USERID  COMMODITID
1       1       1
2       1       2
3       1       3
4       2       1
5       2       2
6       3       3

查询下单的用户

SELECT DISTINCT USERS.NAME FROM ORDERS AS DD LEFT JOIN USERS ON USERS.ID = DD.USER_ID

结果:
NAME
王五
李四
张三

查询下单的用户所买的商品

SELECT USERS.NAME,COMMODIT.NAME FROM ORDERS AS DD LEFT JOIN USERS ON USERS.ID = DD.USER_ID LEFT JOIN COMMODITON DD.SP_ID = COMMODIT.ID ORDER BY USERS.ID

NAME   COMMODITONNAME
张三      火腿
张三      方便面
张三      饮料
李四      方便面
李四      火腿
王五      饮料

多表连接关键字 INNER JOIN / LEFT JOIN / RIGHT JOIN / FULL JOIN 区别

INNER JOIN

只显示两表匹配的数据

LEFT JOIN

从左表那里返回所有的行,即使在右表中没有匹配的行

RIGHT JOIN

从右表那里返回所有的行,即使在左表中没有匹配的行

FULL JOIN

返回两表所有数据

十六、UNION 和 UNION ALL 操作符

UNION 语法
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

UNION ALL 语法

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

十七、常用函数

AVG 函数

AVG 函数返回数值列的平均值。NULL 值不包括在计算中。

COUNT() 函数

COUNT() 函数返回匹配指定条件的行数。

MAX() 函数

MAX 函数返回一列中的最大值。NULL 值不包括在计算中。

MIN() 函数

MIN 函数返回一列中的最小值。NULL 值不包括在计算中。

SUM() 函数

SUM 函数返回数值列的总数(总额)。

十八、GROUP BY 语句

OEDERS表
O_Id    OrderDate   OrderPrice  Customer
  1     2008/12/29      1000        Bush
  2     2008/11/23      1600       Carter
  3     2008/10/05      700         Bush
  4     2008/09/28      300         Bush
  5     2008/08/06      2000        Adams
  6     2008/07/21      100         Carter

SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer

结果:
Customer    SUM(OrderPrice)
  Bush        2000
  Carter      1700
  Adams       2000

十九、HAVING 子句

利用上面
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<1700

结果:
Customer    SUM(OrderPrice)
  Bush        2000
  Adams       2000
注:以上是常用的SQL语法,详细讲解请到https://www.w3school.com.cn/sql/index.asp
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空