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是一种分布式处理架构(同一件事可以同时分给不同的人处理)。
不同数据库的核心特点不太一样,但是语法大同小异。