SELECT:
DML组可以细分为以下的几个语句:
SELECT:用于检索数据;
INSERT:用于增加数据到数据库;
UPDATE:用于从数据库中修改现存的数据
DELETE:用于从数据库中删除数据。
DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:
CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
DROP INDEX
DCL命令用于创建关系用户访问以及授权的对象。下面是几个DCL命令:
ALTER PASSWORD
GRANT
REVOKE
CREATE SYNONYM
删除记录
Delete语句是用来从表中删除记录或者行,其语句格式为:
delete from "tablename"
where "columnname" OPERATOR "value" [and|or "column" OPERATOR
"value"];
[ ] = optional
下面还是举个例子:
delete from employee;
这条语句没有where语句,所以它将删除所有的记录,因此如果没有使用where的时候,要千万小心。
如果你只要删除其中一行或者几行,可以参考以下的语句:
delete from employee
where lastname = 'May';
这条语句是从emplyee表中删除lastname为'May'的行。
delete from employee
where firstname = 'Mike' or firstname = 'Eric';
这条语句是从emplyee表中删除firstname为'Mike'或者'Eric'的行。
为了从表中删除一个完整的记录或者行,就直接在"delete
from"后面加上表的名字,并且利用where指明符合什么条件的行要删除即可。如果你没有使用where子句,那么表中的所有记录或者行将被删除。
删除表
Drop table命令用于删除一个表格或者表中的所有行。其语法格式为:
drop table "tablename"
下面举个例子:
drop table employee;
为了删除整个表(包括所有的行),可以使用drop table命令后加上tablename。Drop
table命令跟从表中删除所有记录是不一样的:
删除表中的所有记录是留下表格(只是它是空的)以及约束信息;而drop
table是删除表的所有信息,包括所有行、表格以及约束信息等等。
数据检索
在SQL中SELECT语句通常用于检索数据库,或者检索满足你设定条件的数据,以下是简单的SELECT语句的格式:
select "column1"[,"column2",etc] from "tablename"
[where "condition"];
[] = optional
其中列的名字跟着SELECT关键字,它决定了哪一列将被作为结果返回。你可以任意指定多个列,或者你可以使用"*"来选择所有的列。
表的名字是紧跟着FROM关键字的,它指出了哪个表格将作为最后结果被查询。
而WHERE子句(可选)指出哪个数据或者行将被返回或者显示,它是根据关键字WHERE后面描述的条件而来的。
在WHERE子句中可以有以下的条件选择: = 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
<> 不等于
LIKE 参见以下注释
注释:LIKE
模式匹配操作符同样可以使用在WHERE子句的条件条件中。LIKE是一个功能强大的操作符,它可以让你选择你"喜欢"指定的行。百分号"%"
可以被用来匹配任何可能的字符,它可以出现在指定字符的前面或者后面,例如:
select first, last, city
from empinfo
where first LIKE 'Er%';
以上这条SQL语句将会匹配任何名字以'Er'开始的名字,这里必须使用单引号。
或者你也可以使用"%"在字符的前面,例如:
select first, last
from empinfo
where last LIKE '%s';
这条SQL语句将会匹配任何名字以's'结尾的名字。这个"%"的作用就跟DOS命令的"*"号很相似。
select * from empinfo
where first = 'Eric';
下面我们使用SELECT语句来进行一些检索:
首先你可以从empinfo中检索出列为first、last、city的数据,语句如下:
select first, last, city from empinfo;
select last, city, age from empinfo
where age > 30;
select first, last, city, province from empinfo
where first LIKE 'J%';
select * from empinfo;
select first, last, from empinfo
where last LIKE '%g';
你还可以这样来从first、last和age列中来查询last中间有'sh'字符的数据:
select first, last, age from empinfo
where last LIKE '%sh%';
最后,你还可以查询first为'Jiang'的数据:
select * from empinfo where first = 'Jiang';
1 显示first和age列的每一个表中数据
2 显示first、last和city列中除了first=Jiang的所有表中的数据。
3 显示所有age大于30的列的数据。
4 显示first和last列中last是以"g"结尾的数据。
5 显示所有first为"Zhang"的列
SELECT语句
在上面的教程中已经有用到SELECT语句。在本节教程中将详细对它进行阐述。SELECT语句是SQL的核心,在你的SQL语句中可能用的最多的就是SELECT语句了。由于大量的选项可以用于SELECT语句,所以整个教程好象就是围这SELECT语句转。当我们构造SQL查询语句(利用了SELECT语句)的时候,认识所有的可能选项和最好的或者最有效率的方法来实现是很有用的。这个教程将为你提供这些技能。
SELECT语句用于查询数据库并检索匹配你指定条件的选择数据。SELECT语句有五个主要的子句子你可以选择,而FROM是唯一必须的子句。每一个子句有大量的选择项、参数等等。这些子句将罗列在下面,而且它们每一个都将在以后的教程有更为详细的描述。
以下是SELECT语句的格式:
SELECT [ALL | DISTINCT] column1[,column2]
FROM table1[,table2]
[WHERE "conditions"]
[GROUP BY "column-list"]
[HAVING "conditions]
[ORDER BY "column-list" [ASC | DESC] ]
下面举个例子:
SELECT name, age, salary
FROM employee
WHERE age > 50;
上面的这个语句将从employee表中选择age大于50的所有的name、age和salary列的数值。
注意:一定要在SQL语句末尾加上一个分号。这个分号提示SQL语句已经结束并准备被解释。
以下的表格给出了各种比较运算符号:
=
等于
>
大于
<
小于
>=
大于等于
<=
小于等于
<>
不等于
LIKE
字符串比较测验
举个例子吧:
SELECT name, title, dept
FROM employee
WHERE title LIKE 'Pro%';
上面的语句是从employee表中选择title是以'Pro'为开头的name、title和dept列中的所有行或者数值。
另外ALL和DISTINCT也是SQL中的关键字,它们用于在你的查询结果中选择ALL(缺省)或者"distinct"或者单一记录。如果你想在指定的列中检索单一记录,你可以使用"DISTINCT"
关键子。 因为DISTNCT 将会丢弃所有你在SELECT指定的列复制的记录,比如 :
SELECT DISTINCT age
FROM employee_info;
这条语句将返回所有在employee_info表中单一的age数据。
而ALL就将显示所有指定的类,包括所有的复制数据。在没有指定的时候,这个ALL关键字是缺省的。
创建表
这个create table语句是用于创建一个新的表格。以下是一个简单创建表格语句的格式:
create table "tablename"
("column1" "data type",
"column2" "data type",
"column3" "data type");
如果你想使用可选的约束,创建表格的格式为:
create table "tablename"
("column1" "data type" [constraint],
"column2" "data type" [constraint],
"column3" "data type" [constraint]);
[ ] = optional
这里注意:你可以任意创建多列的表格,这个条件是可选的。
为了更好的理解,下面举个例子:
create table employee
(first varchar(15),
last varchar(20),
age number(3),
address varchar(30),
city varchar(20),
state varchar(20));
为了创建一个新表格,你可以在关键字create
table之后跟着表的名字,然后一个圆左括号”(”,然后是第一列的名字,再是这一列的数据类型,接着是任意的可选约束,最后是圆右括号”)”。确保在开始表格内容之前使用圆左括号并且在表的最后一列定义之后使用圆右括号是相当重要的。你还要保证每一个列定义之间有逗号分隔。最后在SQL语句结束时候加上分号";"。
表格和列名必须以字母开头,第二个字符开始可以是字母、数字或者下划线,但是要保证名字的总长度不要超过30个字符。在定义表格和列名不要使用不要使用SQL预定的用于表格或者列名的关键字(比如"select"、"create"、
"insert"等等),以避免错误的发生。
数据类型是指在特定的列使用什么样数据的类型。如果一个列的名字为"Last_Name",它是用来容纳人名的,所以这个特定列就应该采用"varchar"
(variable-length character,变长度的字符型) 数据类型。
以下是几种常见的数据类型:
char(size) :固定长度的字符串型。Size是圆括号中指定的参数,它可以由用户随意设置,但是不能超过255个字节。
varchar(size) :变长度的字符串型。它的最大长度是由括号中的参数size设定的。
number(size):数值型。最大数字的位数由括号中的参数size设置。
date :日期数值型。
number(size,d) :数值型。它的最大数字的位数由括号中的参数sieze设定,而括号中的参数d是设置小数点的位数。
什么是约束呢?当表被创建的时候,可以一列也可以多列共用一个约束。约束是一个跟列有关的基本准则,返回的数据必须遵循这个准则。下面举个例子,一个约束指定在一列中不能有两个记录共用一个数值。它们必须单独的。其它两个流行的约束是:"not
null",它设置了列不能留空白,即一定要有数据;以及"primary
key"(主键),主键约束定义了表中每一个记录(或行)的唯一标识。所有的这些将在以后的教程中再作进一步阐述。
好吧,也许你已经有跃跃欲试的冲动了。作为本节练习,下面我们自己来设计和创建表格。
你可以开始创建一个公司的雇员表格。你需要创建一个包含firstname、lastname、 title、 age和 salary的表格。
合计函数
所有的合计函数如下表所示:
MIN
返回一个给定列中最小的数值
MAX
返回一个给定列中最大的数值
SUM
返回一个给定列中所有数值的总和
AVG
返回一个给定列中所有数值的平均值
COUNT
返回一个给定列中所有数值的个数
COUNT(*)
返回一个表中的行数
合计函数用于从SELECT语句中计算一个”返回列的数据”。它们是总结了所选数据列的结果。虽然它们需要"GROUP
BY"子句(后面一个教程介绍),但是这些函数也可以在不用使用"GROUP BY"子句的情况被使用,比如 :
SELECT AVG(salary)
FROM employee;
这条语句将返回单一的结果,它包含了从employee表中所有salary列数据的平均值。为了更好的理解,我们再举个例子:
SELECT AVG(salary)
FROM employee;
WHERE title = 'Programmer';
以上这条语句将返回employee表中所有title列为'Programmer'的数据的平均值。
下面的例子中使用的语句跟其它合计函数有点不用,因为没有一个类被指定给COUNT函数。这条语句实际上将返回employee表的行数,如下:
SELECT Count(*)
FROM employees;
最后给出本节教程的配套练习:
1)作一个公司的销售表items_ordered,里面有price、product和amount。
从items_ordered表中选择price最大的数据。这里提示:使用MAX函数。
2) 计算items_ordered表中的行数。
插入数据到表
Insert语句用于往表格中插入或者增加一行数据,它的格式为:
insert into "tablename"
(first_column,...last_column)
values (first_value,...last_value);
[] = optional
简单举个例子:
insert into employee
(first, last, age, address, city)
values ('Luke', 'Duke', 45, '2130 Boars Nest', 'Hazard Co');
这里要注意:每一个字符窜都要用单引号括起来。
为了往表中插入数据,要在关键字insert
into之后紧跟着表名,然后是左圆括号,接着是以逗号分开的一系列的列名,再是一个右圆括号,然后在关键字values之后跟着一系列用圆括号括起的数值。这些数值是你要往表格中填入的数据,它们必须与指定的列名相匹配。字符串笔译用单引号括起来,而数字就不用。在上面的例子中,'Luke'必须与列first相匹配,而45必须与列age相匹配。
假如你想往employee表格中插入以下数据;
Zhang Weiguo,28,北京601信箱,北京
那么你要使用以下的SQL语句:
insert into employee
(first, last, age, address, city)
values (' Zhang', ' Weiguo' ,28, '北京601信箱', '北京');
更新记录
Update语句用于更新或者改变匹配指定条件的记录,它是通过构造一个where语句来实现的。其语句格式如下:
update "tablename"
set "columnname" = "newvalue"[,"nextcolumn" = "newvalue2"...]
where "columnname" OPERATOR "value" [and|or "column" OPERATOR
"value"];
[] = optional
下面举个例子来说明:
update phone_book
set area_code = 623
where prefix = 979;
以上语句是在phone_book表中,在prefix=979的行中将area_code设置为623。
update phone_book
set last_name = 'Smith', prefix=555, suffix=9292
where last_name = 'Jones';
而以上的这段语句是在phone_book中,在last_name= 'Jones'的行中将last_name 设置为 'Smith',
prefix为555, suffix为9292。
update employee
set age = age+1
where first_name='Mary' and last_name='Williams';
这段语句是在employee表中,在first_name='Mary' 和last_name='Williams'的行中将age加1。
作为每课一练,你在结束本教程之后要好好作以下的练习:
1 因为Jonie Weber 已经跟Bob Williams结婚,所以它需要将它的last名更新为Weber-Williams。
2 Dirk Smith的生日是今天,所以他的年龄应该加1。
3 所有的秘书都叫做"Administrative Assistant".所以要将所有的标题标题都相应地修改。
SELECT
DML组可以细分为以下的几个语句:
SELECT:用于检索数据;
INSERT:用于增加数据到数据库;
UPDATE:用于从数据库中修改现存的数据
DELETE:用于从数据库中删除数据。
DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:
CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
DROP INDEX
DCL命令用于创建关系用户访问以及授权的对象。下面是几个DCL命令:
ALTER PASSWORD
GRANT
REVOKE
CREATE SYNONYM
删除记录
Delete语句是用来从表中删除记录或者行,其语句格式为:
delete from "tablename"
where "columnname" OPERATOR "value" [and|or "column" OPERATOR
"value"];
[ ] = optional
下面还是举个例子:
delete from employee;
这条语句没有where语句,所以它将删除所有的记录,因此如果没有使用where的时候,要千万小心。
如果你只要删除其中一行或者几行,可以参考以下的语句:
delete from employee
where lastname = 'May';
这条语句是从emplyee表中删除lastname为'May'的行。
delete from employee
where firstname = 'Mike' or firstname = 'Eric';
这条语句是从emplyee表中删除firstname为'Mike'或者'Eric'的行。
为了从表中删除一个完整的记录或者行,就直接在"delete
from"后面加上表的名字,并且利用where指明符合什么条件的行要删除即可。如果你没有使用where子句,那么表中的所有记录或者行将被删除。
删除表
Drop table命令用于删除一个表格或者表中的所有行。其语法格式为:
drop table "tablename"
下面举个例子:
drop table employee;
为了删除整个表(包括所有的行),可以使用drop table命令后加上tablename。Drop
table命令跟从表中删除所有记录是不一样的:
删除表中的所有记录是留下表格(只是它是空的)以及约束信息;而drop
table是删除表的所有信息,包括所有行、表格以及约束信息等等。
数据检索
在SQL中SELECT语句通常用于检索数据库,或者检索满足你设定条件的数据,以下是简单的SELECT语句的格式:
select "column1"[,"column2",etc] from "tablename"
[where "condition"];
[] = optional
其中列的名字跟着SELECT关键字,它决定了哪一列将被作为结果返回。你可以任意指定多个列,或者你可以使用"*"来选择所有的列。
表的名字是紧跟着FROM关键字的,它指出了哪个表格将作为最后结果被查询。
而WHERE子句(可选)指出哪个数据或者行将被返回或者显示,它是根据关键字WHERE后面描述的条件而来的。
在WHERE子句中可以有以下的条件选择: = 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
<> 不等于
LIKE 参见以下注释
注释:LIKE
模式匹配操作符同样可以使用在WHERE子句的条件条件中。LIKE是一个功能强大的操作符,它可以让你选择你"喜欢"指定的行。百分号"%"
可以被用来匹配任何可能的字符,它可以出现在指定字符的前面或者后面,例如:
select first, last, city
from empinfo
where first LIKE 'Er%';
以上这条SQL语句将会匹配任何名字以'Er'开始的名字,这里必须使用单引号。
或者你也可以使用"%"在字符的前面,例如:
select first, last
from empinfo
where last LIKE '%s';
这条SQL语句将会匹配任何名字以's'结尾的名字。这个"%"的作用就跟DOS命令的"*"号很相似。
select * from empinfo
where first = 'Eric';
下面我们使用SELECT语句来进行一些检索:
首先你可以从empinfo中检索出列为first、last、city的数据,语句如下:
select first, last, city from empinfo;
select last, city, age from empinfo
where age > 30;
select first, last, city, province from empinfo
where first LIKE 'J%';
select * from empinfo;
select first, last, from empinfo
where last LIKE '%g';
你还可以这样来从first、last和age列中来查询last中间有'sh'字符的数据:
select first, last, age from empinfo
where last LIKE '%sh%';
最后,你还可以查询first为'Jiang'的数据:
select * from empinfo where first = 'Jiang';
1 显示first和age列的每一个表中数据
2 显示first、last和city列中除了first=Jiang的所有表中的数据。
3 显示所有age大于30的列的数据。
4 显示first和last列中last是以"g"结尾的数据。
5 显示所有first为"Zhang"的列
SELECT语句
在上面的教程中已经有用到SELECT语句。在本节教程中将详细对它进行阐述。SELECT语句是SQL的核心,在你的SQL语句中可能用的最多的就是SELECT语句了。由于大量的选项可以用于SELECT语句,所以整个教程好象就是围这SELECT语句转。当我们构造SQL查询语句(利用了SELECT语句)的时候,认识所有的可能选项和最好的或者最有效率的方法来实现是很有用的。这个教程将为你提供这些技能。
SELECT语句用于查询数据库并检索匹配你指定条件的选择数据。SELECT语句有五个主要的子句子你可以选择,而FROM是唯一必须的子句。每一个子句有大量的选择项、参数等等。这些子句将罗列在下面,而且它们每一个都将在以后的教程有更为详细的描述。
以下是SELECT语句的格式:
SELECT [ALL | DISTINCT] column1[,column2]
FROM table1[,table2]
[WHERE "conditions"]
[GROUP BY "column-list"]
[HAVING "conditions]
[ORDER BY "column-list" [ASC | DESC] ]
下面举个例子:
SELECT name, age, salary
FROM employee
WHERE age > 50;
上面的这个语句将从employee表中选择age大于50的所有的name、age和salary列的数值。
注意:一定要在SQL语句末尾加上一个分号。这个分号提示SQL语句已经结束并准备被解释。
以下的表格给出了各种比较运算符号:
=
等于
>
大于
<
小于
>=
大于等于
<=
小于等于
<>
不等于
LIKE
字符串比较测验
举个例子吧:
SELECT name, title, dept
FROM employee
WHERE title LIKE 'Pro%';
上面的语句是从employee表中选择title是以'Pro'为开头的name、title和dept列中的所有行或者数值。
另外ALL和DISTINCT也是SQL中的关键字,它们用于在你的查询结果中选择ALL(缺省)或者"distinct"或者单一记录。如果你想在指定的列中检索单一记录,你可以使用"DISTINCT"
关键子。 因为DISTNCT 将会丢弃所有你在SELECT指定的列复制的记录,比如 :
SELECT DISTINCT age
FROM employee_info;
这条语句将返回所有在employee_info表中单一的age数据。
而ALL就将显示所有指定的类,包括所有的复制数据。在没有指定的时候,这个ALL关键字是缺省的。
创建表
这个create table语句是用于创建一个新的表格。以下是一个简单创建表格语句的格式:
create table "tablename"
("column1" "data type",
"column2" "data type",
"column3" "data type");
如果你想使用可选的约束,创建表格的格式为:
create table "tablename"
("column1" "data type" [constraint],
"column2" "data type" [constraint],
"column3" "data type" [constraint]);
[ ] = optional
这里注意:你可以任意创建多列的表格,这个条件是可选的。
为了更好的理解,下面举个例子:
create table employee
(first varchar(15),
last varchar(20),
age number(3),
address varchar(30),
city varchar(20),
state varchar(20));
为了创建一个新表格,你可以在关键字create
table之后跟着表的名字,然后一个圆左括号”(”,然后是第一列的名字,再是这一列的数据类型,接着是任意的可选约束,最后是圆右括号”)”。确保在开始表格内容之前使用圆左括号并且在表的最后一列定义之后使用圆右括号是相当重要的。你还要保证每一个列定义之间有逗号分隔。最后在SQL语句结束时候加上分号";"。
表格和列名必须以字母开头,第二个字符开始可以是字母、数字或者下划线,但是要保证名字的总长度不要超过30个字符。在定义表格和列名不要使用不要使用SQL预定的用于表格或者列名的关键字(比如"select"、"create"、
"insert"等等),以避免错误的发生。
数据类型是指在特定的列使用什么样数据的类型。如果一个列的名字为"Last_Name",它是用来容纳人名的,所以这个特定列就应该采用"varchar"
(variable-length character,变长度的字符型) 数据类型。
以下是几种常见的数据类型:
char(size) :固定长度的字符串型。Size是圆括号中指定的参数,它可以由用户随意设置,但是不能超过255个字节。
varchar(size) :变长度的字符串型。它的最大长度是由括号中的参数size设定的。
number(size):数值型。最大数字的位数由括号中的参数size设置。
date :日期数值型。
number(size,d) :数值型。它的最大数字的位数由括号中的参数sieze设定,而括号中的参数d是设置小数点的位数。
什么是约束呢?当表被创建的时候,可以一列也可以多列共用一个约束。约束是一个跟列有关的基本准则,返回的数据必须遵循这个准则。下面举个例子,一个约束指定在一列中不能有两个记录共用一个数值。它们必须单独的。其它两个流行的约束是:"not
null",它设置了列不能留空白,即一定要有数据;以及"primary
key"(主键),主键约束定义了表中每一个记录(或行)的唯一标识。所有的这些将在以后的教程中再作进一步阐述。
好吧,也许你已经有跃跃欲试的冲动了。作为本节练习,下面我们自己来设计和创建表格。
你可以开始创建一个公司的雇员表格。你需要创建一个包含firstname、lastname、 title、 age和 salary的表格。
合计函数
所有的合计函数如下表所示:
MIN
返回一个给定列中最小的数值
MAX
返回一个给定列中最大的数值
SUM
返回一个给定列中所有数值的总和
AVG
返回一个给定列中所有数值的平均值
COUNT
返回一个给定列中所有数值的个数
COUNT(*)
返回一个表中的行数
合计函数用于从SELECT语句中计算一个”返回列的数据”。它们是总结了所选数据列的结果。虽然它们需要"GROUP
BY"子句(后面一个教程介绍),但是这些函数也可以在不用使用"GROUP BY"子句的情况被使用,比如 :
SELECT AVG(salary)
FROM employee;
这条语句将返回单一的结果,它包含了从employee表中所有salary列数据的平均值。为了更好的理解,我们再举个例子:
SELECT AVG(salary)
FROM employee;
WHERE title = 'Programmer';
以上这条语句将返回employee表中所有title列为'Programmer'的数据的平均值。
下面的例子中使用的语句跟其它合计函数有点不用,因为没有一个类被指定给COUNT函数。这条语句实际上将返回employee表的行数,如下:
SELECT Count(*)
FROM employees;
最后给出本节教程的配套练习:
1)作一个公司的销售表items_ordered,里面有price、product和amount。
从items_ordered表中选择price最大的数据。这里提示:使用MAX函数。
2) 计算items_ordered表中的行数。
插入数据到表
Insert语句用于往表格中插入或者增加一行数据,它的格式为:
insert into "tablename"
(first_column,...last_column)
values (first_value,...last_value);
[] = optional
简单举个例子:
insert into employee
(first, last, age, address, city)
values ('Luke', 'Duke', 45, '2130 Boars Nest', 'Hazard Co');
这里要注意:每一个字符窜都要用单引号括起来。
为了往表中插入数据,要在关键字insert
into之后紧跟着表名,然后是左圆括号,接着是以逗号分开的一系列的列名,再是一个右圆括号,然后在关键字values之后跟着一系列用圆括号括起的数值。这些数值是你要往表格中填入的数据,它们必须与指定的列名相匹配。字符串笔译用单引号括起来,而数字就不用。在上面的例子中,'Luke'必须与列first相匹配,而45必须与列age相匹配。
假如你想往employee表格中插入以下数据;
Zhang Weiguo,28,北京601信箱,北京
那么你要使用以下的SQL语句:
insert into employee
(first, last, age, address, city)
values (' Zhang', ' Weiguo' ,28, '北京601信箱', '北京');
更新记录
Update语句用于更新或者改变匹配指定条件的记录,它是通过构造一个where语句来实现的。其语句格式如下:
update "tablename"
set "columnname" = "newvalue"[,"nextcolumn" = "newvalue2"...]
where "columnname" OPERATOR "value" [and|or "column" OPERATOR
"value"];
[] = optional
下面举个例子来说明:
update phone_book
set area_code = 623
where prefix = 979;
以上语句是在phone_book表中,在prefix=979的行中将area_code设置为623。
update phone_book
set last_name = 'Smith', prefix=555, suffix=9292
where last_name = 'Jones';
而以上的这段语句是在phone_book中,在last_name= 'Jones'的行中将last_name 设置