目录
SQL 是用于访问和处理数据库的标准的计算机语言。
在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。
一、🌎SQL 简介
SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。
1.1 📜SQL 是什么?
- SQL 指结构化查询语言,全称是 Structured Query Language。
- SQL 让您可以访问和处理数据库,包括数据插入、查询、更新和删除。
- SQL 在1986年成为 ANSI(American National Standards Institute 美国国家标准化组织)的一项标准,在 1987 年成为国际标准化组织(ISO)标准。
1.2 📜SQL 能做什么?
- SQL 面向数据库执行查询
- SQL 可从数据库取回数据
- SQL 可在数据库中插入新的记录
- SQL 可更新数据库中的数据
- SQL 可从数据库删除记录
- SQL 可创建新数据库
- SQL 可在数据库中创建新表
- SQL 可在数据库中创建存储过程
- SQL 可在数据库中创建视图
- SQL 可以设置表、存储过程和视图的权限
1.3 📜SQL 是一种标准 - 但是...
虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。
然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。
1.4 📜在您的网站中使用 SQL
要创建一个显示数据库中数据的网站,您需要:
- RDBMS 数据库程序(比如 MS Access、SQL Server、MySQL)
- 使用服务器端脚本语言,比如 PHP 或 ASP
- 使用 SQL 来获取您想要的数据
- 使用 HTML / CSS
1.4 📜RDBMS
RDBMS 指关系型数据库管理系统,全称 Relational Database Management System。
RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。
RDBMS 中的数据存储在被称为表的数据库对象中。
表是相关的数据项的集合,它由列和行组成。
1.5 📜请记住...
- SQL 对大小写不敏感:SELECT 与 select 是相同的。
1.6 📜SQL 语句后面的分号?
某些数据库系统要求在每条 SQL 语句的末端使用分号。
分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。
在本教程中,我们将在每条 SQL 语句的末端使用分号。
1.7 📜一些最重要的 SQL 命令
- SELECT - 从数据库中提取数据
- UPDATE - 更新数据库中的数据
- DELETE - 从数据库中删除数据
- INSERT INTO - 向数据库中插入新数据
- CREATE DATABASE - 创建新数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建新表
- ALTER TABLE - 变更(改变)数据库表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引
二、📚不断学习
2.1、📘将课程创建日期均推迟一天
请编写 SQL 语句,查询 courses
表中课程的课程创建日期,并将课程创建日期均推迟一天,最后返回课程名称 name
及修改后的课程创建时间,修改后的课程创建时间命名为 new_created
。
表定义: courses(课程表)
列名 | 类型 | 注释 |
---|---|---|
id | int unsigned | 主键 |
name | varchar | 课程名称 |
student_count | int | 学生总数 |
created_at | date | 课程创建时间 |
teacher_id | int | 讲师 id |
- 结果列名需要重命名
样例
样例一:
表内容 : courses
id | name | student_count | created_at | teacher_id |
---|---|---|---|---|
1 | Advanced Algorithms | 880 | 2020-6-1 | 4 |
2 | System Design | 1350 | 2020-7-18 | 3 |
3 | Django | 780 | 2020-2-29 | 3 |
4 | Web | 340 | 2020-4-22 | 4 |
5 | Big Data | 700 | 2020-9-11 | 1 |
6 | Artificial Intelligence | 1660 | 2018-5-13 | 3 |
7 | Java P6+ | 780 | 2019-1-19 | 3 |
8 | Data Analysis | 500 | 2019-7-12 | 1 |
10 | Object Oriented Design | 300 | 2020-8-8 | 4 |
12 | Dynamic Programming | 2000 | 2018-8-18 | 1 |
在运行你的 SQL 语句之后,表应返回:
name | new_created |
---|---|
Advanced Algorithms | 2020-06-02 |
System Design | 2020-07-19 |
Django | 2020-03-01 |
Web | 2020-04-23 |
Big Data | 2020-09-12 |
Artificial Intelligence | 2018-05-14 |
Java P6+ | 2019-01-20 |
Data Analysis | 2029-07-13 |
Object Oriented Design | 2020-08-09 |
Dynamic Programming | 2018-08-19 |
样例二:
表内容 : courses
id | name | student_count | created_at | teacher_id |
---|---|---|---|---|
1 | Advanced Algorithms | 880 | 2020-6-2 | 4 |
6 | Artificial Intelligence | 1660 | 2018-5-14 | 3 |
7 | Java P6+ | 780 | 2019-1-19 | 3 |
在运行你的 SQL 语句之后,表应返回:
name | new_created |
---|---|
Advanced Algorithms | 2020-06-03 |
Artificial Intelligence | 2018-05-15 |
Java P6+ | 2019-01-20 |
select name,date_add(created_at,interval 1 DAY)as new_created
from courses
2.2、 📘将课程创建日期均提前一天
请编写 SQL 语句,查询 courses
表中课程的课程创建日期,将课程创建日期均提前一天,最后返回课程 id
、课程名称 name
及修改后的开课日期,修改后的课程创建日期命名为 new_created
。
表定义: courses(课程表)
列名 | 类型 | 注释 |
---|---|---|
id | int unsigned | 主键 |
name | varchar | 课程名称 |
student_count | int | 学生总数 |
created_at | date | 课程创建时间 |
teacher_id | int | 讲师 id |
- 结果列名需要重命名
- 如果查询不到创建时间,则无法修改
样例
样例一:
表内容 : courses
id | name | student_count | created_at | teacher_id |
---|---|---|---|---|
1 | Advanced Algorithms | 880 | 2020-6-1 | 4 |
2 | System Design | 1350 | 2020-7-18 | 3 |
3 | Django | 780 | 2020-2-29 | 3 |
4 | Web | 340 | 2020-4-22 | 4 |
5 | Big Data | 700 | 2020-9-11 | 1 |
6 | Artificial Intelligence | 1660 | 2018-5-13 | 3 |
7 | Java P6+ | 780 | 2019-1-19 | 3 |
8 | Data Analysis | 500 | 2019-7-12 | 1 |
10 | Object Oriented Design | 300 | 2020-8-8 | 4 |
12 | Dynamic Programming | 2000 | 2018-8-18 | 1 |
在运行你的 SQL 语句之后,表应返回:
id | name | new_created |
---|---|---|
1 | Advanced Algorithms | 2020-5-31 |
2 | System Design | 2020-7-17 |
3 | Django | 2020-2-28 |
4 | Web | 2020-4-21 |
5 | Big Data | 2020-9-10 |
6 | Artificial Intelligence | 2018-5-12 |
7 | Java P6+ | 2019-1-18 |
8 | Data Analysis | 2019-7-11 |
10 | Object Oriented Design | 2020-8-7 |
12 | Dynamic Programming | 2018-8-17 |
样例二:
表内容 : courses
id | name | student_count | created_at | teacher_id |
---|---|---|---|---|
1 | Advanced Algorithms | 880 | 2020-6-1 | 4 |
6 | Artificial Intelligence | 1660 | 2018-5-13 | 3 |
7 | Java P6+ | 780 | null | 3 |
在运行你的 SQL 语句之后,表应返回:
id | name | created_at |
---|---|---|
1 | Advanced Algorithms | 2020-5-31 |
6 | Artificial Intelligence | 2018-5-12 |
7 | Java P6+ | null |
select id,name,date_sub(created_at,interval 1 day) as new_created
from courses
2.3、 📘计算课程表中所有课程指定日期与开课日期的月数差
请编写 SQL 语句,查询 courses
表,计算 '2020-04-22' 与课程创建时间的月数差,返回列名显示为 MonthDiff。
表定义: courses(课程表)
列名 | 类型 | 注释 |
---|---|---|
id | int unsigned | 主键 |
name | varchar | 课程名称 |
student_count | int | 学生总数 |
created_at | date | 课程创建时间 |
teacher_id | int | 讲师 id |
查询返回列名需要与样例输出的列名一致。
样例
样例一:
表内容:courses
id | name | student_count | created_at | teacher_id |
---|---|---|---|---|
1 | Senior Algorithm | 880 | 2020-06-01 | 4 |
2 | System Design | 1350 | 2020-07-18 | 3 |
3 | Django | 780 | 2020-02-29 | 3 |
4 | Web | 340 | 2020-04-22 | 4 |
5 | Big Data | 700 | 2020-09-11 | 1 |
6 | Artificial Intelligence | 1660 | 2018-05-13 | 3 |
7 | Java P6+ | 780 | 2019-01-19 | 3 |
8 | Data Analysis | 500 | 2019-07-12 | 1 |
10 | Object Oriented Design | 300 | 2020-08-08 | 4 |
12 | Dynamic Programming | 2000 | 2018-08-18 | 1 |
在运行你的 SQL 语句之后,表应返回:
MonthDiff |
---|
-1 |
-2 |
1 |
0 |
-4 |
23 |
15 |
9 |
-3 |
20 |
样例一中课程表中课程创建时间与指定时间相等结果为0,比指定时间小结果为负数。
样例二:
表内容:courses
id | name | student_count | created_at | teacher_id |
---|---|---|---|---|
1 | Senior Algorithm | 880 | null | 4 |
2 | System Design | 1350 | null | 3 |
在运行你的 SQL 语句之后,表应返回:
MonthDiff |
---|
null |
null |
select TIMESTAMPDIFF(month,created_at,'2020-04-22') as 'MonthDiff'
from courses
三、🥇Summary
已经好长时间没有更新(一个月),其实这段时间,怎么说,就也是……继续努力吧!!!
最近开始重新学习SQL了,有时候也不知道应该学点什么,需要学点什么,也并没有参加什么比赛,主要是比较菜😓,希望可以自己沉淀一段时间,💪
上述内容就是此次 SQL教程(五)简单实例学习:时间函数(二) 基础入门级 的全部内容了,感谢大家的支持,相信在很多方面存在着不足乃至错误,希望可以得到大家的指正。🙇(ง •_•)ง
调整自己。不忘来时路,努力前行,找到前进的方向。
2023年第三十九期,希望得到大家的喜欢🙇
希望大家有好的意见或者建议,欢迎私信,一起加油
以上就是本篇文章的全部内容了
~ 关注我,点赞博文~ 每天带你涨知识!
1.看到这里了就 [点赞+好评+收藏] 三连 支持下吧,你的「点赞,好评,收藏」是我创作的动力。
2.关注我 ~ 每天带你学习 :各种前端插件、3D炫酷效果、图片展示、文字效果、以及整站模板 、HTML模板 、C++、数据结构、Python程序设计、Java程序设计、爬虫等! 「在这里有好多 开发者,一起探讨 前端 开发 知识,互相学习」!
3.以上内容技术相关问题可以相互学习,可 关 注 ↓公 Z 号 获取更多源码 !
获取源码?私信?关注?点赞?收藏?
👍+✏️+⭐️+🙇