一、SQL简介
SQL语言,是结构化查询语言(Structured Query Language)的简称、SQL语言是一种数据库查询和程序设计语言、用于存取数据以及查询、更新和管理关系数据库系统、同时也是数据库脚本文件的扩展名。
(A)、T-SQL与PL/SQL与NoSQL
T-SQL 即 Transact-SQL,是 SQL 在 Microsoft SQL Server 上的增强版,它是用来让应用程式与 SQL Server 沟通的主要语言。T-SQL 提供标准 SQL 的 DDL 和 DML 功能,加上延伸的函数、系统预存程序以及程式设计结构(例如 IF 和 WHILE)让程式设计更有弹性。
PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。
NoSQL,泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
(B)、RDBMS与DBMS
现代的 SQL 服务器构建在 RDBMS 之上。
RDBMS全称是关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的数据库软件有Oracle、MSSQL Server,Access,MySQL等。
DBMS全称是数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。
(C)、SQL主要分成四部分
1.DDL(Data Definition Language)数据库定义语言,语句用于定义数据库结构或架构,用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等。
(1)、CREATE - 增(CREATE DATABASE - 创建新数据库、CREATE TABLE - 创建新表、CREATE INDEX - 创建索引)
(2)、ALTER -改(ALTER DATABASE - 修改数据库、ALTER TABLE - 变更(改变)数据库表)
(3)、DROP -删除(DROP TABLE - 删除表、DROP INDEX - 删除索引)
(4)、TRUNCATE --删除(TRUNCATE TABLE - 删除表中的所有行)
(5)、COMMENT --提交事务
(6)、RENAME --重命名
注意:约束DDL不需要commit.
2.DML(Data Manipulation Language)数据操纵语言,语句用于管理架构对象内的数据。
由DBMS提供,用于让用户或程序员使用,实现对数据库中数据的操作,DML分成交互型DML和嵌入型DML两类。
依据语言的级别,DML又可分成过程性DML和非过程性DML两种。
(1)、SELECT - 从数据库表中获取数据
(2)、INSERT - 向数据库表中插入数据
(3)、UPDATE - 更新数据库表中的数据
(4)、DELETE - 从数据库表中删除数据
(5)、MERGE -根据与源表联接的结果,对目标表执行插入、更新或删除操作
(6)、CALL -调用存储过程
(7)、EXPLAIN PLAN -获取SQL语句执行计划
(8)、LOCK TABLE -锁表
注意:需要commit
3.DCL(Data Control Language)数据库控制语言 ,语句用于授权,角色控制等。
(1)、GRANT -授权
(2)、REVOKE -取消授权
4.TCL(Transaction Control Language)事务控制语言。
(1)、SAVEPOINT -设置保存点
(2)、ROLLBACK -回滚
(3)、SET TRANSACTION -给事务命名
(D)、常见数据库(关系与非关系型数据库)
关系型数据库
1. IBM的DB2
2. Oracle
3. Informix
4. Sybase
5. SQL Server
6. PostgreSQL
7. mySQL
8. SQLite
非关系型数据库:
1. CouchDB
2. Redis
3. MongoDB
4. Riak
5. Membase
6. Neo4j
7. Cassandra
8. HBase