
第5章 SQL语句的应用
学习指引
在SQL语句中,每一条子句都由一个关键字开始,使用SQL语句可以对数据库进行详细的管理。本章将介绍SQL语句的应用,如数据定义语句、数据操作语句、数据控制语句等。
重点导读
- 掌握数据定义语句的应用。
- 掌握数据操作语句的应用。
- 掌握数据控制语句的应用。
- 掌握其他基本语句的应用。
- 掌握流程控制语句的应用。
5.1 数据定义语句
数据定义语句(Data Definition Language, DDL)是SQL中负责数据结构定义与数据库对象定义的语句,由CREATE、ALTER、DROP和RENAME 4个语句所组成。
5.1.1 创建数据库对象——CREATE语句

CREATE语句主要用于数据库对象的创建,凡是数据库、数据表、数据库索引、用户函数、触发程序等对象,都可以使用CREATE语句来创建。
例如,创建一个数据库的语法格式如下:

其中,dbname为数据库的名称。
下面使用SQL语句创建一个名为my_db的数据库,具体的SQL代码如下:

又如,使用CREATE语句还可以创建数据库中的数据表,包括表的行与列,具体语法格式如下:

参数介绍如下:
- column_name参数规定表中列的名称。
- data_type参数规定列的数据类型(例如varchar、integer、decimal、date等)。
- size参数规定表中列的最大长度。
例如,创建一个名为Persons的表,包含4列:ID、Name、Address和City。SQL语句如下:

其中,ID列的数据类型是int,包含整数;Name、Address和City列的数据类型是varchar,包含字符,且这些字段的最大长度为255字符。
除数据库与数据表外,在数据库中还可以使用CREATE语句创建其他对象,具体如下。
- CREATE INDEX:创建数据表索引。
- CREATE PROCEDURE:创建预存程序。
- CREATE FUNCTION:创建用户函数。
- CREATE VIEW:创建视图。
- CREATE TRIGGER:创建触发程序。
5.1.2 修改数据库对象——ALTER语句

ALTER语句主要用于修改数据库中的对象,相对于CREATE语句来说,该语句不需要定义完整的数据对象参数,还可以依照要修改的幅度来决定使用的参数,因此使用简单。
例如,如果需要在表中添加列,具体的语法格式如下:

例如,修改Persons表,为表添加一个名为Date of Birth的列,SQL语句如下:

如果需要删除表中的列,具体的语法格式如下:

例如,删除Persons表中的Date of Birth列,SQL语句如下:

如果要改变表中列的数据类型,具体的语法格式如下:

例如,想要改变Persons表中Date of Birth列的数据类型,SQL语句如下:

这样,“Date of Birth”列的类型是year,可以存放2位或4位格式的年份。
另外,用户还可以为ALTER语句添加更为复杂的参数,例如下面一段SQL语句:

这段代码的作用为:在数据表Persons中加入一个新的字段,名称为age,数据类型为int,允许NULL值。
5.1.3 删除数据库对象——DROP语句

通过使用DROP语句,可以轻松地删除数据库中的索引、表和数据库,该语句的使用比较简单。
删除索引的SQL语句如下:

删除表的SQL语句如下:

删除数据库的SQL语句如下:

例如,想要删除mydb数据库中的fruit_old表,SQL语句如下:
