学习笔记

SQL基本介绍

1.SQL是什么

SQL是Structured Query Language的缩写,直译就是结构化查询语言,顾名思义就是对结构化数据进行查询的一种语言。

对于结构化数据,Excel表中的数据就是典型的一种结构化数据,我们把类似于Excel中这种有行有列的二维数据称为结构化数据,结构化数据是又固定结构的。

而那些不适合用行和列的形式来存储的数据称为非结构化数据,非结构化数据是没有固定结构的,比如一个Word文档,一个HTML文档,一张图片这样的数据信息。用来存储非结构化数据的数据库称为非关系型数据库。

SQL是一种用于访问和操作关系型数据库的标准化编程语言,用于查询、插入、更新和修改数据。

表(Table)是数据库中存储数据的主要对象,它由行和列组成,类似于电子表格,每一个表代表一个特定类型的实体,如“客户”或“订单”。

行(Row)也称为记录或元组。行代表表中的一个 个体实例。例如,在“客户”表中,每一行可能代表一个特定的客户。

列(Column)也称为字段或属性,列定义了表中存储的数据类型。例如“客户”表可能包含“姓名”、“地址”和“电话号码”等列。

主键(Primary Key)是唯一标识表中每一行的一列或一组列。它它确保每条记录都是唯一的。

外键(Foreign Key)是一个表中的列,它引用另一个表的主键。用于建立表之间的关系

关系(Relationship)描述了不同表之间的逻辑链接。常见的关系类型包括一对一、一对多和多对多。

DBMS(Database Management System)数据库管理系统是一种软件,用于创建、维护和使用数据库。常见的DBMS包括MySQL、PostgreSQL和Oracle。

索引(Index)是一种数据结构,用于加快数据检索速度。它类似于书籍的目录,可以更快地找到所需信息。

事物(Transaction)是数据库中的一系列操作,它们作为一个单一的工作单元执行。事物要么完全执行,要么完全不执行,这保证了数据的一致性。

规范化(Normalization)是组织数据以减少冗余和提高数据完整性的过程,它涉及将大表分解成更小、更管理的表。

功能包括:

数据查询:从数据库中检索数据

数据更新:修改数据库中的数据

数据插入:向数据库中添加新数据

数据删除:从数据库中移除数据

数据库和表的创建与修改

SQL基本语句:

SELECT:用于查询数据

INSERT:用于插入新数据

UPDATE:用于更新现有数据

DELETE:用于删除数据

CREATE TABLE:创建表

ALTER TABLE:修改表结构

DROP TABLE:删除表

SQL的特点:

标准化:SQL是一个标准化语言,广泛被各种数据库管理系统支持

声明式:你只需说明“做什么”,而不是“怎么做”

强大:能够处理复杂的查询和数据管理任务

2.SQL的基本功能

数据定义

数据定义一般简称为DDL(Data Definition Language)的缩写,数据定义中包含三个行为关键词:创建(Create)、删除(Drop)、修改(Alter)。

这三个行为关键词主要作用于数据库、表、视图、索引等对象。通过DDL可以达到创建、删除、修改数据库、表、视图、索引的目的。

数据操纵

数据操作那个一般简称为DML(Data Manipulation Language),包含4个行为关键词:查询(Select)、插入(Insert)、更新(Update)、删除(Delete)。

DELETE和DROP的区别:

作用对象不同: DELETE:

作用于表中的数据(行)

用于删除表中的一行或多行记录

DROP:

作用于数据库对象(如表、视图、索引等)

用于删除整个数据库对象

影响范围: DELETE:

只删除表中的数据,表结构保持不变

可以删除部分或全部数据

DROP:

删除整个表,包括结构和所有数据

对于表来说,是一个更彻底的删除操作

可恢复性: DELETE:

通常可以回滚(在事务中)

删除的数据可以恢复(如果有备份或日志)

DROP:

通常不可回滚

一旦执行,表及其数据就完全消失,难以恢复

数据控制

数据控制一般简称为DCL,是Data Control Language的缩写。数据控制包含两个行为关键词:赋予权限(Grant)、取消权限(Revoke)。这两个行为关键词主要作用于表和列。

通过DCL可以赋予赋予或取消某个用户对某张表或某些列的权限;可以赋予DML中的全部或部分操作权限。在数据分析中,一般只有查询权限。

3.SQL查询的处理步骤

查询分析

第一步是查询分析,首先扫描全部的SQL语句,然后进行词法和语法分析,所谓的词法和语法分析,就是判断查询语句是否符合SQL语法规则,比如,查询的列名与列名之间是否有逗号分隔,如果不符合语法规则,查询则会停止,并显示出具体的语法错误,如果符合语法规则,则进入下一步。

查询检查

第二步是查询检查,这一步主要是对经过第一步分析的查询语句进行语义检查,即根据数据字典判断查询语句中涉及的数据库、数据表、列等信息是否存在,如果不存在,查询则会停止,显示出具体的错误,如果全部存在,则进入下一步。

查询优化

每个查询语句都会有多种执行策略,查询优化就是根据具体情况选择一个效率最高的执行策略。

查询执行

对经过前面三个步骤以后得到的查询语句进行自行,并对查询结构进行返回。

4.不同数据库的比较

目前市面上主流的数据库有MySQL、SQL Server、Oracle、DB2等

MySQL是目前比较主流的数据库,由微软开发,与微软其他产品交互更加方便,比如与Office套件的交互。

Oracle是数据库领域的引领者,MySQL已被甲骨文收购。

DB2是IBM开发的一台数据库服务器,主要面向的目标用户是企业。

Hive SQL也比较常见,Hive是基于Hadoop构建的一套数据仓库分析系统,与MySQL的语法基本一致,是为了让会写SQL的非开发人员,也可以使用Hadoop进行数据处理。Hadoop是一种分布式处理架构(同一件事可以同时分给不同的人处理)。

不同数据库的核心特点不太一样,但是语法大同小异。

发表回复