数据分析丨一文了解SQL知识体系,超全SLQ学习指南

交互设计

  本期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-用来对表中的一行或多行进行更新。

  以上就是今天分享的全部内容,我们下期见!

  整理不易,点赞、转发帮忙点一下~

标签: 交互设计