SQL连载(一)----简介

一、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

你可能感兴趣的:(SQL语句)