第七章 SQL操作基础.docx

上传人:b****1 文档编号:20150483 上传时间:2023-04-25 格式:DOCX 页数:10 大小:23.42KB
下载 相关 举报
第七章 SQL操作基础.docx_第1页
第1页 / 共10页
第七章 SQL操作基础.docx_第2页
第2页 / 共10页
第七章 SQL操作基础.docx_第3页
第3页 / 共10页
第七章 SQL操作基础.docx_第4页
第4页 / 共10页
第七章 SQL操作基础.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

第七章 SQL操作基础.docx

《第七章 SQL操作基础.docx》由会员分享,可在线阅读,更多相关《第七章 SQL操作基础.docx(10页珍藏版)》请在冰豆网上搜索。

第七章 SQL操作基础.docx

第七章SQL操作基础

第七章SQL操作基础

SQL是一种通用的数据库查询语言,利用SQL的数据定义语句,可以实现数据表、字段或索引的创建、修改和删除,利用数据操纵语句,可以实现数据的查询、插入、更新或删除等操作。

ASP存取数据库时,也需要利用sql语句来实现对数据库的相关操作

7.1SQL简介

SQL是StructuredQueryLanguage的缩写,是一种结构化的数据库查询语言。

目前绝大多数数据库均支持该种查询语言,如access、mysql、microsoftsqlserver、oracle、sybase等,利用SQL提供的命令、子句和函数,课实现对数据库的各种操作。

SQL语句不区分大小写,字符串常量用单引号或双引号括起来,字符串比较时要区分大小写。

1.SQL的命令与子句

常用的SQL命令可以分为数据定义和数据操纵两大类。

数据定义类命令主要用于建立和定义新的数据库、表、字段和索引,以及对数据库或表进行修改或删除等操作。

包括的命令有:

CREATE用于建立新的数据库、表或索引

DROP用于删除数据库、表或索引

ALTER用于添加字段或改变对字段的定义

对于数据库或表的创建,通常可用数据库的宿主软件(可创建盖数据库软件)来创建,在ASP中,用的较多的主要是数据的存取,因此,对数据库或表的创建及修改命令,只作简单的介绍。

数据操作类命令主要用于实现对数据的查询、添加、更新或删除等操作。

常用的命令主要有:

SELECT用于检索记录数据

INSERT用于向数据表添加记录数据

UPDATE用于更新指定记录中指定字段的值

DELETE从数据表中删除指定的记录

SQL语句由SQL命令、子句和函数等几个部分构成。

子句常用来指定查询条件、指定数据来源或指定数据的组织排列方式,常用的子句主要有:

FROM用于指定需要从其中选择记录的数据表名

WHERE用于指定查询条件

GROUPBY用于指定将所选择的记录,按什么进行分组

ORDERBY用于指定记录按哪个字段进行排序,排序方式是升序还是降序

例如,若要从名为userdata的数据表中,检索出username字的值为”truename”的记录,并显示该记录的id、username、password、email字段的值。

则实现的SQL语句为:

Selectid,username,password,emailFROMuserdataWHEREusername=’truename’

若要检索出userdata表中所有的记录和所有字段的数据,并按id字段的降序排列,则实现的SQL语句为:

Select*FROMuserdataORDERBYidDESC

SQL语句不能直接执行,在ASP中,可通过ADO的链接对象所提供的execute方法来执行SQL语句。

2.SQL的函数

SQL还提供了大量的函数,利用这些函数,可进一步增强SQL的功能。

比如,利用聚集类函数,可获得表中数据的总结性信息,这类函数常用的主要有:

COUNT返回所选择的记录个数

SUM返回所选择的记录中,指定字段的值的总和

AVG返回所选择的记录中,指定字段的平均值

MAX返回所选择的记录中,指定字段的最大值

MIN返回所选择的记录中,指定字段的最小值

例如,若要获得product数据表中,stopflag字段值为1的记录的个数,则实现的SQL语句为:

Selectcount(*)fromproductwherestopflag=1

若要获得product数据表中的记录总数,则实现的SQL语句为:

Selectcount(*)fromproduct

若要获得product数据表中price字段的最大值,则实现的SQL语句为:

SelectMAX(price)fromproduct

SQL函数比较多,若要进一步学习,可参阅有关讲解sqlserver方面的书籍。

7.2SQL的运算符

1.数学运算符

SQL支持的数学运算符又加(+)、减(-)、乘(*)、处(/)和取模(%)

2.逻辑运算符

SQL的逻辑运算符有AND、OR、和NOT三种,分别代表逻辑与、逻辑或、逻辑非运算。

常用于构成复合条件表达式。

3.比较运算符

SQL支持的比较运算符如下表:

运算符

功能

运算符

功能

<

小于

<>或!

=

不等于

<=

小于或等于

BETWEEN

用于指定字段值得范围

>

大于

LIKE

在模式匹配中在、使用,实现模糊查询

>=

大于或等于

IN

指定字段的可能取值

=

等于

例如,若要在product数据表中,检索出name字段的值中含有”sony”的记录,则实现的SQL语句为:

Select*fromproductwherenamelike‘%sony%’

说明:

%是SQL的通配符,代表任意的多个字符,在SQL中,单字符的通配符为“_”

若要在product数据表中,检索出price字段的值在100到15000之间的记录,则实现的语句为:

Select*fromproductwherepricebetween100and15000

若要在product数据表中,检索出ID字段的值为3,11,17,21或34的记录,则实现的SQL语句为:

Select*fromproductwhereIDin(3,11,17,21,34)

IN运算符可用于实现从题库中随机抽取题目组成试卷。

7.3SQL的数据操纵语句

7.3.1INSERT

1.添加单条记录

该语句用于向指定的数据表中添加记录,其用法为:

Insertinto表名[(字段名列表)]values(值列表)

说明:

表名代表药添加数据的表的名称;字段名列表为可选项,若指定,则对新添加记录的指定字段填写数据,具体的数据由VALUES后面的值列表指定。

若缺省字段名列表,则对新添加记录的每个字段,均要填写数据,填入顺序为数据字段的建立顺序。

例7.1现有名为userdata的数据表,其字段有id(自动递增)、username(字符型)、password(字符型)、email(字符型),试用SQL语句,向该表中添加一条记录,其记录数据为:

ucrk34ycqzuczhoc@

分析:

对于自动递增型的最大,在新添加记录时,系统会自动为其分配值,因此在insert语句中,可以不指定。

实现的语句为:

Insertintouserdata(username,password,email)values(‘ucrk’,’34ycqz’,’uczhoc@’)

在添加记录时,若某个字段没有明确的值,且该字段的值允许为空,则可为其指定一个空值,在values后面的值列表中,用null来表示。

若字段不允许为空,则可指定零长度的空格,对于数值型,要指定为0。

利用该语句,一次只能插入一条记录,若要插入多条记录,只需要重复使用该语句即可。

2.添加多条记录

如果要将一个表中复合条件的记录,添加到另一个表中,此时可使用INSERT的另一个用法来实现,其用法为:

Insertinto表1[(字段名列表)]select字段名列表from表2where条件

语句功能:

从表2中将符合条件的记录,添加到表1中,该语句实质就是将select语句的查询结果,插入到表1中。

例如,若要将userdata数据表中的全部内容,拷贝到tmp_userdata数据表中,则实现的SQL语句为:

Insertintotmp_userdataselect*fromuserdata

若要在product数据表中,将productname字段包含“DV”的记录,添加到tmp_product数据表中,要添加的字段数据有productID、productname、price,则实现的SQL语句为:

Insertintotmp_userdata(productID,productname,price)select(productID,productname,price)fromproductwhereproductnamelike‘%DV%’

7.3SELECT语句

该语句用于从指定的表中检索出记录,这些被检索出的记录就形成了一个集合,简称为记录集,该语句的用法为:

Select[predicate]字段列表|*from表名[where条件][orderby排序字段asc|desc][groupby分组字段]

说明:

predicate:

该项用于限制返回记录的数目,最常用的是TOP,用于指定返回符合条件的记录中,最上面的多少条记录。

该项的默认值为ALL,但ALL通常不表达。

例如,若要返回product数据表中,price小于100的前5条记录,则实现的SQL语句为:

Selecttop5*fromproductwhereprice<100

字段名列表|*:

二者任选其一,*代表当前数据表中的所有字段,若要查询数据表中的部分字段的值,则将这些字段罗列出来即可,各字段间用逗号分隔。

orderby:

用于指定排序字段,查询后,所返回的记录将按此排序,ASC代表升序,为默认值,DESC代表降序。

例如,若要显示product数据表中的全部记录内容,并按price的升序排列,则实现的SQL语句为:

Select*fromproductorderbyprice

GROUPBY:

用于按指定的字段,对返回的记录进行分组。

例7.2试在office数据表中,按team字段分组,并显示各组的平均工资。

在该数据表中,工资字段为salary.

实现的SQL语句为:

selectteam,avg(salary)fromofficegroupbyteam

另外,通过在字段前面使用前缀数据表名,利用SELECT语句,还可以同时从多个数据表中检索出数据。

例7.3在product数据表中有productid、productname、price等字段,在pbook数据表中有productid、press、isbn、author、publishdate等字段,试检索出press字段值为“清华大学出版社”的记录的productid、productname、price、isbn和author字段的值。

实现的语句为:

Selectproduct.productid,product.productname,product.price,pbook.isbn,pbook.authorfromproduct,pbookwhereproduct.productid=pbook.productidandpbook.press=’清华大学出版社’

7.3.3UPDATE语句

该语句用于更新指定记录的数据,其用法为:

Update表名set字段名1=值[,字段名2=值2,…][where条件]

语句功能:

对符合条件的记录,更新修改指定字段的值。

若默认条件,则对所有记录进行更新修改。

例如,在userdata数据表中,将用户名为guest的记录的密码修改为“ky24361”,用户名字段为“username”,密码字段为password.则实现的SQL语句为:

Updateuserdatasetpassword=’ky24361’whereusername=’guest’

在product数据表中,将price字段的值增加3%,实现的SQL语句为:

Updateproductsetprice=price*1.03

7.3.4DELETE语句

该语句用于删除指定的记录,其用法为:

Deletefrom表名WHERE条件

语句功能:

删除符合条件的记录。

若默认条件,则删除指定表中的全部记录。

例如:

若要删除userdata数据表中用户名username为“test”的记录,则实现的sql语句为:

Deletefromuserdatawhereusername=’test’

若要删除userdata数据表中的全部记录内容,则实现的SQL语句为:

Deletefromusername

7.4SQL的数据定义语句

7.4.1.数据库的创建与删除

1.创建数据库

在创建数据库之前,必须保证拥有系统管理员权限,或由系统管理员授予的创建数据库的权限,其创建语句为:

Createdatabase数据库名

例如,若要创建一个名为netbook的数据库,则实现的SQL语句为:

createdatabasenetbook

2.删除数据库

语句用法:

dropdatabase数据库名

语句功能:

删除指定的数据库。

例如:

若要删除netbook数据库,实现的SQL语句为:

Dropdatabasenetbook

7.4.2数据表的创建与删除

1.创建数据库表在一个数据库中,可存储若干个表,数据库的数据,实质是存储在数据表中的。

每一个表,相当于一个二维表格。

语句用法:

Createtable表名(field1datatype[notnull],field2databyte[notnull]…)

语句功能:

创建指定的数据表。

说明:

(1)field:

代表所要创建的字段的名称。

(2)datatype:

为该字段的数据类型。

对于不同类型的数据库,字段所允许定义的数据类型会有所不同。

(3)notnull:

为可选项,若选用,则表示该字段的值不能为空。

例7.4试创建一个名为softcd的数据库表,该数据表的字段名、类型和宽度如下所示:

字段名类型宽度是否允许空值

Productidintnotnull

Developernvarchar50null

Pressnvarchar50null

Downloadnvarchar50null

Pricerealnull

实现的SQL语句为:

Createtablesoftcd(productidintnotnull,developernvarchar(50)null,pressnvarchar(50)null,downloadnvarchar(50)null,pricerealnull)

2.删除数据表

语句用法:

droptable表名

语句功能:

删除指定的表

例如:

若要删除名为tmpsoftcd的表,则实现的SQL语句为:

Droptabletmpsoftcd

7.4.3修改数据表结构

修改数据表的结构,可用altertable语句来实现,利用该语句,可实现在表中添加一个字段,或修改已有的字段的相关信息。

其用法为:

Altertable表名add|modify字段名类型[(宽度)]

语句功能:

在指定的数据表中,添加或修改已有的字段。

说明:

add和modify二者只能选一,若用add,则表示添加字段;若选用MODIFY,则为修改指定的字段。

例如,若要在softcd数据表中添加一个disprice字段,类型为real,允许为空,则实现的SQL语句为:

Altertablesoftcdadddispricerealnull

若要将softcd数据表中press字段的宽度更改为40,实现的SQL语句为:

Altertablesoftcdmodifypressnvarchar(40)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1