本期SQL专题将系统的带大家学习SQL相关知识,围绕SQL基础知识、SQL练习、SQL面试题三方面进行更新,想学习SQL的朋友记得持续关注!
本篇重点内容:
1、数据库
2、什么是SQL
3、SQL分类
4、SQL语法
5、常用SQL语句速查
01 数据库
在学习SQL之前,大家应该先了解一个概念,什么是数据库?
数据库这个术语的用法很多,但就SQL的角度来看,数据库是以某种有组织的方式存储的数据集合,最简单的办法是将数据库想象为一个文件柜。
文件柜只是一个存放数据的物理位置,它不管数据是什么,也不管数据是如何组织的。
数据库术语
- 数据库(Database)保存有组织的数据的容器(通常是一个文件或一组文件)。
- 数据表(Table)某种特定类型数据的结构化清单。
- 模式(Schema)关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。数据库和表都有模式。
- 列(Column)表中的一个字段。所有表都是由一个或多个列组成的。
- 行(Row)表中的一个记录。
02 什么是SQL
SQL是Structured Query Language(结构化查询语言)的缩写,SQL是一种专门用来与数据库沟通的语言,是一种从数据库中读写数据的简单有效的方法。
SQL都能做什么?
- 面向数据库执行查询
- 可从数据库取回数据
- 可在数据库中插入新的记录
- 可更新数据库中的数据
- 可从数据库删除记录
- 可创建新数据库
- 可在数据库中创建新表
- 可在数据库中创建存储过程
- 可在数据库中创建视图
- 可以设置表、存储过程和视图的权限
03 SQL分类
数据定义语言(DDL)
数据定义语言(DataDefinition Language,DDL)是 SQL语言集中负责数据结构定义与数据库对象定义的语言。
DDL 的主要功能是定义数据库对象。
DDL 的核心指令是CREATE、ALTER、DROP。
数据操纵语言(DML)
数据操纵语言(DataManipulation Language, DML)是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句。
DML 的主要功能是访问数据,因此其语法都是以读写数据库为主。
DML 的核心指令是INSERT、UPDATE、DELETE、SELECT。这四个指令合称CRUD(Create, Read, Update,Delete),即增删改查。
事务控制语言(TCL)
事务控制语言(Transaction Control Language, TCL)用于管理数据库中的事务。这些用于管理由DML 语句所做的更改。它还允许将语句分组为逻辑事务。
TCL 的核心指令是COMMIT、ROLLBACK。
数据控制语言(DCL)
数据控制语言(Data Control Language, DCL)是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。
DCL 的核心指令是GRANT、REVOKE。
DCL 以控制用户的访问权限为主,因此其指令作法并不复杂,可利用 DCL 控制的权限有:CONNECT、SELECT、INSERT、UPDATE、DELETE、EXECUTE、USAGE、REFERENCES。
根据不同的DBMS 以及不同的安全性实体,其支持的权限控制也有所不同。
04 SQL语法
SQL 语法结构
子句- 是语句和查询的组成成分。(在某些情况下,这些都是可选的。)
表达式 - 可以产生任何标量值,或由列和行的数据库表
谓词 - 给需要评估的SQL三值逻辑(3VL)(True/False/Unknown)或布尔真值指定条件,并限制语句和查询的效果,或改变程序流程。
查询 - 基于特定条件检索数据。这是SQL的一个重要组成部分。
语句 - 可以持久地影响纲要和数据,也可以控制数据库事务、程序流程、连接、会话或诊断。
最重要的SQL命令
- SELECT-从数据库中提取数据
- UPDATE-更新数据库中的数据
- DELETE-从数据库中删除数据
- INSERTINTO- 向数据库中插入新数据
- CREATEDATABASE- 创建新数据库
- ALTERDATABASE- 修改数据库
- CREATETABLE- 创建新表
- ALTERTABLE- 变更(改变)数据库表
- DROPTABLE- 删除表
- CREATEINDEX- 创建索引(搜索键)
- DROPINDEX- 删除索引
SQL使用
表中包含三条记录和五个列(Id、姓、名、地址和城市)

从表中选取LastName列的数据:
SELECT LastName FROM Persons
- SQL 语句不区分大小写,例如:SELECT与select 、Select是相同的。但是数据库表名、列名和值是否区分大小写,依赖于具体的DBMS以及配置。
- 多条 SQL 语句必须以分号(;)分隔。
- 处理 SQL 语句时,所有空格都被忽略。
- SQL 语句可以写成一行,也可以分写为多行。
一行 SQL 语句
UPDATE user SET username='robot', password='robot' WHERE username = 'root';
多行 SQL 语句
UPDAT Euser SET username='robot',password='robot'
WHERE username = 'root';
#多数SQL开发人员认为,将SQL语句分成多行更容易阅读和调试。
另外,还有一点需要注意,无论是应用开发还是数据库管理,在不同类型数据库,实现其同样功能的SQL查询,都会遇到 SQL 写法或多或少不一样的问题。这与每一个数据库都有自己所特有的一些函数和功能有关。
不同类型的数据库,虽然 SQL 语法大体相似,但是它们各自的函数或符号却有些不同,有的甚至也不通用。
比如将字符串"2020-02-05"转换成日期,标准SQL为Select DATE('2020-02-05') from USER,不同数据库有不同的写法。
ORACLE:Select TO_DATE('2020-02-05', 'YYYY-MM-DD') from USER;
SQLServer:Select CONVERT(varchar(100), '2020-02-05', 23) from USER;
MYSQL:Select DATE_FORMAT('2020-02-05','%Y-%m-%d') from USER;
类似的不同还很多。
SQL三种注释类型
## 注释1
-- 注释2
/* 注释3 */
05 常用SQL语句速查
ALTERTABLE-用来更新现存表的模式,可以用CREATE TABLE来创建一个新表。
COMMIT-用来将事务写入数据库。
CREATEINDEX-用来为一列或多列创建索引。
CREATETABLE-用来创建新的数据库表,可以用ALTER TABLE来更新一个现存表的模式。
CREATEVIEW-用来创建一个或多个表的视图。
DELETE-用来从表中删除一行或多行。
DROP-用来永久性地删除数据库对象(表、视图和索引等)。
INSERT-用来对表添加一个新行。
INSERTSELECT-用来将SELECT的结果插入到表中。
ROLLBACK-用来撤销事务块。
SELECT-用来从一个或多个表(或视图)中检索数据。
UPDATE-用来对表中的一行或多行进行更新。
以上就是今天分享的全部内容,我们下期见!
整理不易,点赞、转发帮忙点一下~