1、SQL是什么?它能做什么?
对数据库进⾏查询和修改操作的语⾔叫做 SQL(Structured Query Language,结构化查询语⾔)。 语⾔是⽬前⼴泛使⽤的关系数据库标准语⾔,是各种数据库交互⽅式的基础。
著名的⼤型商⽤库 Oracle、DB2、Syba、SQL Server,开源的数据库 PostgreSQL、MySQL,甚⾄⼀些⼩型的数据库 Access 等都⽀持 SQL。近些年蓬勃发展的 NoSQL 系统最初是宣称不再需要 SQL 的,后来也不得不修正为 Not Only SQL,来拥抱 SQL。
SQL 是⼀种数据库查询和程序设计语⾔,⽤于存取数据以及查询、更新和管理系统。与其他程序设计语⾔(如 C语⾔、Java 等)不同的是,SQL 由很少的关键字组成,每个 SQL 语句通过⼀个或多个关键字构成。
SQL 具有如下优点。
⼀体化:SQL 集数据定义、数据操作和数据控制于⼀体,可以完成数据库中的全部⼯作。
使⽤⽅式灵活:SQL 具有两种使⽤⽅式,可以直接以命令⽅式交互使⽤;也可以嵌⼊使⽤,嵌⼊C、C++、Fortran、COBOL、Java 等语⾔中使⽤。
⾮过程化:只提操作要求,不必描述操作步骤,也不需要导航。使⽤时只需要告诉计算机“做什么”,⽽不需要告诉它“怎么做”,存储路径的选择和操作的执⾏由数据库管理系统⾃动完成。
语⾔简洁、语法简单:该语⾔的语句都是由描述性很强的英语单词组成,⽽且这些单词的数⽬不多。
SQL 包含以下 4 部分:
1)数据定义语⾔(Data Definition Language,DDL)
⽤来创建或删除数据库以及表等对象,主要包含以下⼏种命令:
DROP:删除数据库和表等对象
CREATE:创建数据库和表等对象
ALTER:修改数据库和表等对象的结构
2)数据操作语⾔(Data Manipulation Language,DML)
⽤来变更表中的记录,主要包含以下⼏种命令:
SELECT:查询表中的数据
INSERT:向表中插⼊新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据
3)数据查询语⾔(Data Language,DQL)
⽤来查询表中的记录,主要包含 SELECT 命令,来查询表中的数据。
4)数据控制语⾔(Data Control Language,DCL)
⽤来确认或者取消对数据库中的数据进⾏的变更。除此之外,还可以对数据库中的⽤户设定权限。主要包含以下⼏种命令:GRANT:赋予⽤户操作权限
REVOKE:取消⽤户的操作权限
COMMIT:确认对数据库中的数据进⾏的变更
ROLLBACK:取消对数据库中的数据进⾏的变更
下⾯是⼀条 SQL 语句的例⼦,该语句声明创建⼀个名叫 students 的表:
该表包含 4 个字段,分别为 student_id、name、x、birth,其中 student_id 定义为表的主键。
现在只是定义了⼀张表格,但并没有任何数据,接下来这条 SQL 声明语句,将在 students 表中插⼊⼀条数据记录:
执⾏完该 SQL 语句之后,students 表中就会增加⼀⾏新记录,该记录中字段 student_id 的值为“41048101”,name 字段的值为“歪⽐巴⼘”。x 字段值为“1”,birth 字段值为“2013-02-14”。
再使⽤ SELECT 查询语句获取刚才插⼊的数据,如下:
上⾯简单列举了常⽤的数据库操作语句,在这⾥留下⼀个印象即可,后⾯我们会详细介绍这些知识。注意:
SQL 语句不区分⼤⼩写,许多 SQL 开发⼈员习惯对 SQL 本⾝的关键字进⾏⼤写,⽽对表或者列的名称使⽤⼩写,这样可以提⾼代码的可阅CREATE TABLE students ( student_id INT UNSIGNED , name VARCHAR (30) , x CHAR (1), birth DATE , PRIMARY KEY (student_id ));1
2
3
4
5
6
7INSERT INTO students (student_id , name , x , birth ) VALUES (41048101, '歪⽐巴⼘', '1', '2013-02-14');
1SELECT name FROM students WHERE student_id =41048101;
1
2