数据库基本概念
数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。该数据集合称为数据库(Database,DB)。用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。
数据库管理系统(DBMS)的分类
层次数据库(Hierarchical Database,HDB)
关系数据库(Relational Database,RDB)
面向对象数据库(Object Oriented Database,OODB)
XML数据库(XML Database,XMLDB)
键值存储系统(Key-Value Store,KVS)
常见的如Oracal,SQL server,MySQL等都是关系数据库的代表,其特点是由行和列组成的二维表来管理数据,这种类型的DBMS称为关系数据库管理系统(Relational Database Management System,RDBMS)
SQL 语句
SQL语句是为了操作数据库而开发的语言,按照功能不同可以将SQL语句分为三类:
DDL(Data Definition Language,数据定义语言) 。主要用来创建或删除数据,包括:
CREAT :创建数据库和表等对象
DROP : 删除数据库和表等对象
ALTER : 修改数据库和表等对象的结构
DML(Data Manipulation Language,数据操纵语言)。主要用来查询和变更数据
SELECT :查询表中的数据
INSERT :向表中插入新数据
UPDATE :更新表中的数据
DELETE :删除表中的数据
DCL(Data Control Language,数据控制语言)。主要用来确认或取消对数据的变更。
COMMIT : 确认对数据库中的数据进行的变更
ROLLBACK : 取消对数据库中的数据进行的变更
GRANT : 赋予用户操作权限
REVOKE : 取消用户的操作权限
创建、删除、更新操作
下面介绍一些常用的SQL语句
创建数据库(CREAT DATABASE)
CREAT DATABASE <数据库的名称>
创建表<CREAT TABLE>
CREAT TABLE <表的名称>
删除表<DROP TABLE>
DROP TABLE <表的名字>
更新表<ALTER TABLE>
可以对选中的表内增加一列,列的具体信息从列定义中给出。
ALTER TABLE <表的名字> ADD COLUMN <列定义>
也可以将表中的某列删除。注意增加和删除的不同。
ALTER TABLE<表的名字> DROP COLUMN <列名>
注意:ALTER TABLE 语句和 DROP TABLE 语句一样,执行之后无法恢复。
查询、筛选操作
在实际应用SQL过程中,从表中选取合适的数据占了非常重要的一部分,通过SELECT语句将我们需要的数据选取出来的过程称为匹配查询或查询(query)。
选取数据<SELECT>
--最基础的SELECT语句
SELECT <列名>
FROM <表名> ;
SELECT * FROM <表名>
SELECT 语句用来选择数据。当不需要指定某列时,用符号 *表示对所有列
选取唯一值<SELECT DISTINCT>
当数据有很多重复值,但只需要返回不同值时,DISTINCT 用来返回唯一不同值
SELECT DISTINCT <列名>
FROM <表名> ;
筛选条件<WHERE>
当我们需要给筛选的数据加上一些限定条件时,WHERE语句用来筛选满足条件的记录。
SELECT <列名>
FROM <表名>
WHERE <表达式> ;
分组、筛选、排序操作
分组(GROUP BY)
有的时候我们需要对数据以某列进行分组,这时候就需要使用GROUP BY 操作。
-- 最基本的GROUP BY
SELECT <列名>
FROM <表名>
WHERE <条件>
GROUP BY <列名>
GROUP BY的子句书写顺序有严格要求,不按要求会导致SQL无法正常执行,子句顺序为:
1 SELECT → 2. FROM → 3. WHERE → 4. GROUP BY → 5.HAVING → 6.ORDER BY
但注意,书写顺序和执行顺序是不同的,执行顺序为:
1.FROM → 2.WHERE → 3.GROUP BY → 4.HAVING → 5.SELECT → 6.ORDER BY
所以执行顺序不同,GROUP BY 在SELECT 的前面,则 SELECT中定义的别名 不能在GROUP BY 中使用。