【开篇】SQL 语句基础篇
![](https://img.haomeiwen.com/i7428276/f83c451362a450d2.png)
【前言】SQL 语法
1、SQL 注意事项
(1)SQL语句对大小写不敏感。
(2) MySQL,要求在每条 SQL 语句之后必须使用分号。
2、SQL DML 和 DDL
SQL(结构化查询语言)可以分为两部分:
DML(Data Manipulation Language,数据操作语言);
DDL(Data Definition Language,数据定义语言)。
(1)DML 语句包括查询和更新指令:
select - 从数据库表中获取数据
insert into - 向数据库表中插入数据
update - 更新数据库表中的数据
delete - 从数据库表中删除数据
(2)DDL 语句使我们有能力创建或删除表格,也可以定义索引(键),规定表之间的链接,以及施加表间的约束:
create database - 创建新数据库
alter database - 修改数据库
create table - 创建新表
alter table - 变更数据库表
drop table - 删除表
create index - 创建索引(搜索键)
drop index - 删除索引
【1】SQL SELECT 语句
select 语句用于从表中选取数据,结果被存储在一个结果表中(称为:结果集)。
1、select 语法
select 列名称 from 表名称;
或:
select * from 表名称;
---- 温馨提示 --
星号 * 是选取所有列的快捷方式。
2、select 实例
(1)从 user 表查询名为 “user” 和 “host” 的列的内容
![](https://img.haomeiwen.com/i7428276/2022b2b77124b770.png)
(2)从 user 表查询所有列
![](https://img.haomeiwen.com/i7428276/575211cc0eb3204c.png)
【2】 SQL SELECT DISTINCT 语句
在表中,可能会包含重复值,但有时候希望仅仅列出不同的值。关键词 distinct 用于返回唯一不同的值。
1、distinct 语法
select distinct 列名称 from 表名称;
2、distinct 实例
从 “host” 列中选取所有的值:select host from user;
![](https://img.haomeiwen.com/i7428276/716cf7371410a5f7.png)
可见,在结果集中,% 被列举了2次,localhost 被列举了3次。如果需要从 “host” 列中仅选取唯一不同的值,需要执行:select distinct host from user;
![](https://img.haomeiwen.com/i7428276/fb2397c3cdfb05aa.png)
【3】SQL WHERE 子句
如需要有条件地从表中选取数据,可将 where 子句添加到 select 语句。
1、where 语法
select 列名称 from 表名称 where 列 运算符 值;
可在 where 子句中使用的运算符:
![](https://img.haomeiwen.com/i7428276/d1d2386ddb28b3f6.png)
---- 温馨提示 ----
在 MySQL 8.0 中,操作符 <> 可以写为 !=
2、where 实例
如果只希望选取有 “Create_priv” 权限的人:
![](https://img.haomeiwen.com/i7428276/32c0c99106e0707b.png)
---- 温馨提示 ----
1、MySQL 8.0 可使用英文的单引号( ' ' )和双引号( " " )来围绕文本值;
2、如果是数值,MySQL 8.0 可使用引号,也可不使用引号。
![](https://img.haomeiwen.com/i7428276/01a504c235ea099d.png)
![](https://img.haomeiwen.com/i7428276/9099b6a708a60409.png)
![](https://img.haomeiwen.com/i7428276/f40d8aec5299ad9c.png)
![](https://img.haomeiwen.com/i7428276/6468c4e2a15752e5.png)
![](https://img.haomeiwen.com/i7428276/afc9802271cb4b33.png)
![](https://img.haomeiwen.com/i7428276/3a751f4709106cfe.png)
【4】SQL AND & OR 运算符
and 和 or 运算符用于基于一个以上的条件对记录进行过滤,可在 where 子句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 and 运算符显示一条记录;
如果第一个条件和第二个条件中只要其中的一个条件成立,则 or 运算符显示一条记录。
1、and 实例
查询 host 项为 “localhost” 和 plugin 项 为 “caching_sha2_password” 的用户:
![](https://img.haomeiwen.com/i7428276/86ee44fab8031106.png)
2、or 实例
查询 host 项为 “localhost” 或者 plugin 项 为 “caching_sha2_password” 的用户:
![](https://img.haomeiwen.com/i7428276/bc8d2ad82128eb2f.png)
3、结合 and 和 or 运算符
可以使用 圆括号()把 and 和 or 运算符结合起来组成复杂的表达式。
查询 拥有创建权限 或 拥有删除权限,且 host 项为 “%” 的用户:
![](https://img.haomeiwen.com/i7428276/86680de33ce2b7d3.png)
【5】SQL ORDER BY 子句
order by 语句用于对结果集进行排序。默认是按照 “升序” 对结果集进行排序,关键词 asc 可以省略不写;若需要按照 “降序” 进行排序,可以使用 desc 关键字。
Orders表:
![](https://img.haomeiwen.com/i7428276/f7fb53f49a281d2c.png)
1、order by 实例1
以字母顺序显示公司名称:
![](https://img.haomeiwen.com/i7428276/e3e35bd7b15c062c.png)
2、order by 实例2
以字母顺序显示公司名称,并以数字顺序显示顺序号:
![](https://img.haomeiwen.com/i7428276/e63d426458ee0403.png)
---- 上图中:虽然 2356 按数字排序应该排在首位,但是先以字母排序,再在相同的字母下,以数字排序,比如 W3school 。
![](https://img.haomeiwen.com/i7428276/8e7f29f8fdbef7b3.png)
3、order by 实例3
以逆字母顺序显示公司名称:
![](https://img.haomeiwen.com/i7428276/6e8232831760c23d.png)
4、order by 实例4
以逆字母顺序显示公司名称,并以数字顺序显示顺序号:
![](https://img.haomeiwen.com/i7428276/5bf612fbe323d985.png)
【6】SQL INSERT INTO 语句
insert into 用于向表格中插入新的行。
1、insert into 语法
(1)插入单行数据
insert into 表名称 values(值1,值2,...);
或指定所要插入数据的列:
insert into 表名称(列1,列2,...)values(值1,值2,...);
(2)插入多行数据
insert into 表名称 values(值11,值12,...),(值21,值22,...), ... ;
2、insert into 实例
(1)插入新的行
![](https://img.haomeiwen.com/i7428276/16fcc3f46bce2435.png)
(2)在指定的列中插入数据
![](https://img.haomeiwen.com/i7428276/b78bc3b0e63b8887.png)
(3)插入多行数据
![](https://img.haomeiwen.com/i7428276/b6e028be2dc1ab24.png)
【7】SQL UPDATE 语句
update 语句用于修改表中的数据。
1、update 语法
update 表名称 set 列名称 = 新值 where 列名称 = 某值 ;
2、update 实例
(1)更新某一行中的一个列
将第3行中 Company 为 Apple 的列更新为 LinkedIn:
![](https://img.haomeiwen.com/i7428276/9b3ac7c7cbd25887.png)
(2)更新某一行中的多个列
将第2行中 Company 为 W3school 的列更新为 JianShu,OrderNumber 为 2356 的列更新为2345 :
![](https://img.haomeiwen.com/i7428276/fa1ce9a3d0e10221.png)
【8】SQL DELETE 语句
delete语句用于删除表中的行。
1、delete 语法
(1)删除某行
delete from 表名称 where 列名称 = 值;
(2)删除所有行
delete from 表名称;
或:
delete * from 表名称;
---- 温馨提示 ----
删除所有行是在不删除表的情况下删除所有的行。这意味着表的结构、属性、索引都是完整的。
2、delete 实例
(1)删除 Company 为 Facebook 的那一行
![](https://img.haomeiwen.com/i7428276/e264e4dfc679ddae.png)
(2)删除 Orders 表的所有行,但不删除 Orders 表
![](https://img.haomeiwen.com/i7428276/89ba1beb257f2896.png)
---- 后记 ----
学习链接:http://www.w3school.com.cn/sql/index.asp
- End -
若有错误,请随时指正。也欢迎大家一起讨论,让我们野蛮成长!
网友评论