16.1 基本概念
数据库系统由数据库、数据库管理系统和应用系统、数据库管理员等构成。
数据库是长期存储在计算机内的、有组织、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库管理系统简称DBMS,是数据库系统的关键组成部分,也是专门用于数据管理的软件。任何数据操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在DBMS管理下进行的。DBMS是用户与数据库的接口,应用程序只有通过DBMS才能和数据库打交道。
常用的DBMS产品有Oracle、SQL Server、MySQL、DB2及Informix。一般来说,Oracle多用于对数据库安全等方面要求比较高的大型数据库系统,SQL Server和MySQL多用于中小型数据库系统。
16.2 SQL语言
目前大多数的数据库都是关系数据库,使用SQL(Structure Query Language,结构化查询语言)语言可以方便地查询、操纵、定义和控制数据库中的数据。下面来简单介绍一下SQL语言。
SQL语言主要由以下几部分组成。
(1)数据定义语言(DDL,Data Definition Language)。
(2)数据操纵语言(DML,Data Manipulation Language)。
(3)数据控制语言(DCL,Data Control Language)。
(4)其他语言要素(Additional Language Elements)。
在使用数据库时用得最多的是数据操纵语言(Data Manipulation Language)。DML包含了最常用的核心SQL语句,即SELECT、INSERT、UPDATE和DELETE。下面对这4种基本操作做一下简单介绍。
6.2.1 SELECT语句
SELECT语句用于从表中选择某些记录,其使用规则如下。
SELECT <所选列的列名>
FROM "数据表名"
[WHERE <条件表达式>]
[GROUP BY <列名1> [HAVING <条件表达式>]]
[ORDER BY <列名2> [ASC | DESC] ]
假设数据表的名称为Student,数据表的各列分别为student_id、name、sex和department,则可使用SELECT语句进行性别的查询,如代码16-1所示。
【代码16-1】 SELECT语句示例
SELECT name,id
FROM Student
WHERE sex='female'
ORDER BY id
6.2.2 INSERT语句
INSERT语句用于给表中插入新记录,其使用规则如下。
INSERT INTO
"表名"[(属性1,属性2,...,属性n)]
VALUES(属性1,属性2,...,属性n)
假设数据表的名称为Student,数据表的各列分别为student_id、name、sex和department,则可使用INSERT语句进行数据的插入,如代码16-2所示。
【代码16-2】 INSERT语句示例
INSERT INTO
Student [(student_id, name, sex, department)]
VALUES(25521305, 'Echo', 'female', 'Software Engeering')
6.2.3 UPDATE语句
UPDATE语句用于更新表中某些记录的属性,其使用规则如下。
UPDATE "数据表名"
SET<列名>=<表达式>
[WHERE<条件表达式>]
假设数据表的名称为Student,数据表的各列分别为student_id、name、sex和department,则可使用UPDATE语句进行记录的更新,如代码16-3所示。
【代码16-3】 UPDATE语句示例
UPDATE Student
SET department='Software Engineering'
WHERE student_id=20521301
6.2.4 DELETE语句
DELETE语句用于删除表中一行或多行记录,其使用规则如下。
DELETE FROM "数据库名" [WHERE<条件表达式>]
假设数据表的名称为Student,数据表的各列分别为student_id、name、sex和department,则可使用DELETE语句对数据进行删除,如代码16-4所示。
【代码16-4】 DELETE语句示例
DELETE FROM Student WHERE student_id=20521301