【中字】SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!_哔哩哔哩_bilibili
课程内容:
- 前四节,所有基本的SQL技能,可以在任何数据库中获取、插入、更新和删除数据
- 汇总数据来创建报告,学到使用子查询来编写复杂查询,学到MySQL的基本内置函数,用于和数字、日期以及文本数据打交道
- 随着你写下更多的查询,你会发现自己在一遍又一遍写同样的查询,所以在随后的两节内容中,会讲到创建视图、存储过程和函数,存储你的查询以供后续使用
- 接下来会继续接触更高阶的内容,比如触发器和事件、事务和并发,一旦你熟练掌握这一部分,你相当于具备了一组强大的MySQL技能
- 如果你想要脱颖而出,你就必须学习设计数据库,所以我已经费心整合出了一套完整深入的章节,来探讨如何设计数据库,我会领你们逐步了解一套系统方法,帮助你们想出一个你们自己数据库的最佳设计
- 然后我们会查看,为了实现高效而使用的索引,你会学到什么是索引,它们的原理,我们如何利用它们来为我们的查询提速,当你的数据库规模不断扩大,索引绝对是必不可少的
- 最后我们课程结束前会学到如何保护你的数据库,那一章节你会学到创建用户账户,分配各种权限,人们就无法滥用你的数据,他们只能查看和修改与他们相关的数据
关系型数据库,这类数据库有多张表,通过关系彼此关联。
SQL是不分大小写的语言,但是最好大写sql的关键字,并小写其余所有内容。
*表示返回所有列,数据量很大时,我们会明确指定想获取的列。
SELECT *
FROM customers
换行符、大间隔、tab符在执行SQL语句时都没有作用,所以可以写成下面这种。但是随着查询越来越复杂,最好把每条子句放在新建行。
SELECT * FROM customers
AS可以给列和结果一个描述性名称,如果想在列名里带上空格,需要在两侧加上引号,单引号双引号都可以。
SELECT points * 10 + 100 AS discount_factor
SELECT points * 10 + 100 AS ‘discount factor’
关键字DISTINCT可以删去重复项
SELECT DISTINCT state
课后练习
USE sql_inventory;
SELECT
name,
unit_price,
unit_price * 1.1 AS new_price
FROM products
比较运算符
- >
- >=
- <
- <=
- =
- != <> 这俩都是不等于
SELECT *
FROM customers
WHERE points > 3000
当要处理一串字符序列,本质上的文本数据,需要把数值用单引号或双引号封上。但通常按照惯例使用单引号。
SELECT *
FROM customers
WHERE state = 'VA'
获得不住在Virginia的顾客
SELECT *
FROM customers
-- WHERE state != 'VA'
WHERE state <> 'VA'
比较运算符也可以用在日期值上。假设你想得到在1990年1月1日之后出生的顾客
SELECT *
FROM customers
WHERE birth_date > '1990-01-01'
课后练习
SELECT *
FROM orders
WHERE order_date >= '2019-01-01'
这段查询如果明年再用就无法给我们返回正确的答案,之后的课程会示范如何写查询得到当前年份的订单。