数据库SQL入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
目录
- 📚 前言
- 🌴 SQL 介绍
-
- 🌼 什么是 SQL
- 🌀 SQL 的类型
- 🌵 学习 SQL 的作用
- 🍄 数据库是什么
- 🐥 SQL 基础语言学习
-
- 🐤 CREATE TABLE – 创建表
- 🐑 INSERT – 插入数据
- 🐼 SELECT – 查询数据
- 🐫 DISTINCT – 去除重复值
- 🐸 WHERE – 条件过滤
- 🐹 AND & OR – 运算符
- 🐰 ORDER BY – 排序
- 🐱 UPDATE – 更新数据
- 🐨 DELETE – 删除数据
- 🐵 TRUNCATE TABLE – 清除表数据
- 🐯 DROP TABLE – 删除表
- 🚀 SQL 高级言语学习
-
- 🚢 LIKE – 查找类似值
- 🚤 IN – 锁定多个值
- ⛵️ BETWEEN – 选取区间数据
- 🚂 AS – 别名
- 🚁 JOIN – 多表关联
- 🚜 UNION – 合并结果集
- 🚌 NOT NULL – 非空
- 🚐 VIEW – 视图
- 🎯 SQL 常用函数学习
-
- 🍔 AVG – 平均值
- 🍕 COUNT – 汇总行数
- 🍘 MAX – 最大值
- 🍢 MIN – 最小值
- 🍰 SUM – 求和
- 🍪 GROUP BY – 分组
- 🍭 HAVING – 句尾连接
- 🍷 UCASE/UPPER – 大写
- 🍶 LCASE/LOWER – 小写
- 👛 LEN/LENGTH – 获取长度
- 🍗 ROUND – 数值取舍
- 🍞 NOW/SYSDATE – 当前时间
- 🍺 写在最后
📚 前言
SQL语言有40多年的历史,从它被应用至今几乎无处不在。我们消费的每一笔支付记录,收集的每一条用户信息,发出去的每一条消息,都会使用数据库或与其相关的产品来存储,而操纵数据库的语言正是 SQL !
SQL 对于现在的互联网公司生产研发等岗位几乎是一个必备技能,如果不会 SQL 的话,可能什么都做不了。你可以把 SQL 当做是一种工具,利用它可以帮助你完成你的工作,创造价值。
文章结尾有 SQL 小测验哦!看看你能得几分?
⭐️ 点我跳转到 SQL 测验!
🌴 SQL 介绍
🌼 什么是 SQL
SQL 是用于访问和处理数据库的标准的计算机语言。
- SQL 指结构化查询语言
- SQL 使我们有能力访问数据库
- SQL 是一种 ANSI 的标准计算机语言
SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。但是由于各种各样的数据库出现,导致很多不同版本的 SQL 语言,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等),这些就是我们要学习的SQL基础。
🌀 SQL 的类型
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
- 数据查询语言(DQL: Data Query Language)
- 数据操纵语言(DML:Data Manipulation Language)
🌵 学习 SQL 的作用
SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。
- SQL 面向数据库执行查询
- SQL 可从数据库取回数据
- SQL 可在数据库中插入新的记录
- SQL 可更新数据库中的数据
- SQL 可从数据库删除记录
- SQL 可创建新数据库
- SQL 可在数据库中创建新表
- SQL 可在数据库中创建存储过程
- SQL 可在数据库中创建视图
- SQL 可以设置表、存储过程和视图的权限
🍄 数据库是什么
顾名思义,你可以理解为数据库是用来存放数据的一个容器。
打个比方,每个人家里都会有冰箱,冰箱是用来干什么的?冰箱是用来存放食物的地方。
同样的,数据库是存放数据的地方。正是因为有了数据库后,我们可以直接查找数据。例如你每天使用余额宝查看自己的账户收益,就是从数据库读取数据后给你的。
最常见的数据库类型是关系型数据库管理系统(RDBMS):
RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access等等。
RDBMS 中的数据存储在被称为表(tables)的数据库对象中。表 是相关的数据项的集合,它由列和行组成。
由于本文主要讲解 SQL 基础,因此对数据库不做过多解释,只需要大概了解即可。咱们直接开始学习SQL!
🐥 SQL 基础语言学习
在了解 SQL 基础语句使用之前,我们先讲一下 表 是什么?
一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。
下面的例子是一个名为 “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 上面的表包含三条记录(每一条对应一个人)和五个列(Id、姓、名、地址和城市)。
有表才能查询,那么如何创建这样一个表?
🐤 CREATE TABLE – 创建表
CREATE TABLE 语句用于创建数据库中的表。
语法:
CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... );
数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:
数据类型 描述 integer(size),int(size),smallint(size),tinyint(size) 仅容纳整数、在括号内规定数字的最大位数 decimal(size,d),numeric(size,d) 容纳带有小数的数字、“size” 规定数字的最大位数、“d” 规定小数点右侧的最大位数 char(size) 容纳固定长度的字符串(可容纳字母、数字以及特殊字符)、在括号中规定字符串的长度 varchar(size) 容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)、在括号中规定字符串的最大长度 date(yyyymmdd) 容纳日期 实例:
本例演示如何创建名为 “Persons” 的表。
该表包含 5 个列,列名分别是:“Id_P”、“LastName”、“FirstName”、“Address” 以及 “City”:
CREATE TABLE Persons ( Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) );
Id_P 列的数据类型是 int,包含整数。其余 4 列的数据类型是 varchar,最大长度为 255 个字符。
空的 “Persons” 表类似这样:
可使用 INSERT INTO 语句向空表写入数据。
🐑 INSERT – 插入数据
INSERT INTO 语句用于向表格中插入新的行。
语法:
INSERT INTO 表名称 VALUES (值1, 值2,....);
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);
实例:
本例演示 “Persons” 表插入记录的两种方式:
1、插入新的行
INSERT INTO Persons VALUES (1, 'Gates', 'Bill', 'Xuanwumen 10', 'Beijing');
2、在指定的列中插入数据
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees');
插入成功后,数据如下:
这个数据插入之后,是通过 SELECT 语句进行查询出来的,别急马上讲!
🐼 SELECT – 查询数据
SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。
语法:
SELECT * FROM 表名称;
我们也可以指定所要查询数据的列:
SELECT 列名称 FROM 表名称;
📢 注意: SQL 语句对大小写不敏感,SELECT 等效于 select。
实例:
SQL SELECT * 实例:
SELECT * FROM Persons;
📢 注意: 星号(*)是选取所有列的快捷方式。
如需获取名为 “LastName” 和 “FirstName” 的列的内容(从名为 “Persons” 的数据库表),请使用类似这样的 SELECT 语句:
SELECT LastName,FirstName FROM Persons;
🐫 DISTINCT – 去除重复值
如果一张表中有多行重复数据,如何去重显示呢?可以了解下 DISTINCT 。
语法:
SELECT DISTINCT 列名称 FROM 表名称;
实例:
如果要从 “LASTNAME” 列中选取所有的值,我们需要使用 SELECT 语句:
SELECT LASTNAME FROM Persons;
可以发现,在结果集中,Wilson 被列出了多次。
如需从 “LASTNAME” 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句:
SELECT DISTINCT LASTNAME FROM Persons;
通过上述查询,结果集中只显示了一列 Wilson,显然已经去除了重复列。
🐸 WHERE – 条件过滤
如果需要从表中选取指定的数据,可将 WHERE 子句添加到 SELECT 语句。
语法:
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;
下面的运算符可在 WHERE 子句中使用: