SQL语言快速入门.docx

上传人:b****2 文档编号:17099291 上传时间:2023-07-22 格式:DOCX 页数:15 大小:655.99KB
下载 相关 举报
SQL语言快速入门.docx_第1页
第1页 / 共15页
SQL语言快速入门.docx_第2页
第2页 / 共15页
SQL语言快速入门.docx_第3页
第3页 / 共15页
SQL语言快速入门.docx_第4页
第4页 / 共15页
SQL语言快速入门.docx_第5页
第5页 / 共15页
SQL语言快速入门.docx_第6页
第6页 / 共15页
SQL语言快速入门.docx_第7页
第7页 / 共15页
SQL语言快速入门.docx_第8页
第8页 / 共15页
SQL语言快速入门.docx_第9页
第9页 / 共15页
SQL语言快速入门.docx_第10页
第10页 / 共15页
SQL语言快速入门.docx_第11页
第11页 / 共15页
SQL语言快速入门.docx_第12页
第12页 / 共15页
SQL语言快速入门.docx_第13页
第13页 / 共15页
SQL语言快速入门.docx_第14页
第14页 / 共15页
SQL语言快速入门.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

SQL语言快速入门.docx

《SQL语言快速入门.docx》由会员分享,可在线阅读,更多相关《SQL语言快速入门.docx(15页珍藏版)》请在冰点文库上搜索。

SQL语言快速入门.docx

SQL语言快速入门

SQL语言快速入门

SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言,它是由IBM开发的数据库语言。

按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。

SQL语言的主要功能就是同各种数据库建立联系,用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。

它是集“数据查询”、“数据操纵”、“数据定义”和“数据控制”功能于一体的数据库语言(介于关系代数和关系演算之间)。

目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。

虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

下面借助罗斯文商贸系统中的查询对象,简要介绍SQL语言的基本成分。

从Access的在线帮助中可以如下图所示的SQL语句,分为数据定义和数据处理两类。

数据定义语句主要有Create、Alter、Drop,分别实现数据库对象的创建、修改和删除;数据操作语句有选择Select和操作语句(如Insert、Delete、Update)。

SELECT…FROM

在众多的SQL命令中,select语句应该算是使用最频繁的。

Select语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。

Select语句的基本语法格式如下:

SELECTcolumn1[,column2,etc]

FROMtablename

[WHERE];

其中“[]”表示可选项

从在线帮助中可以查得关于Select语句的语法如下图所示:

说明如下:

Øselect语句中位于select关键词之后的列名用来决定哪些列将作为查询结果返回。

用户可以按照自己的需要选择任意列,还可以使用通配符“*”来设定返回表格中的所有列。

(对应QBE网格中每一个显示的列)

Øfrom关键词之后的表/查询名称用来决定将要进行查询的数据来源。

Øwhere可选从句用来规定哪些数据行将被作为查询结果返回或显示(使用条件表达式)。

例如:

求“当前产品列表”的SQL语句:

SELECT产品ID,产品名称

FROM产品

WHERE((中止)=No);

运算函数(聚合函数)

SQL提供了众多实用的运算函数供广大用户使用。

例如,我们可以直接在SQL命令中调用SUM或AVG这两个分别用于计算总数和平均数的函数。

例如:

求“库存产品价值”

SELECTSUM([单价]*[库存量])From产品

例如:

求“库存产品平均单价”及查询“高于平均价格的产品”

求“库存产品平均单价”:

SELECTAVG([单价])From产品

“高于平均价格的产品”的查询对象对应的设计视图:

其中以“库存产品平均单价”查询的结果作为“单价”列的筛选条件。

GROUPBY

下面进一步查看SQL语言中的集合函数。

假设我们希望计算每一位雇员所销售的各种产品的数量(销售数量)。

要实现这一目的我们需要做两件事:

●首先,需要查询雇员ID、产品ID和数量三个字段,这需要从订单和订单明细两个表中提取;

●然后,使用SQL语言的GROUPBY命令将数量按照不同的雇员ID及产品ID进行分组,从而计算出不同雇员的所销售的不同产品的数量。

相应的SQL语句是:

SELECT订单.雇员ID,订单明细.产品ID,

Sum(订单明细.数量)AS销售数量

FROM订单INNERJOIN订单明细

ON订单.订单ID=订单明细.订单ID

GROUPBY订单.雇员ID,订单明细.产品ID;

对应的查询设计视图如下:

HAVING

用户在使用SQL语言的过程中可能希望解决的另一个问题就是对由sum或其它集合函数运算结果的输出列进行筛选(限制)。

例如,我们可能只希望只看到上一问题中销售数量超过200的那些记录,这时我们就需要使用HAVING从句。

相应的SQL语句为:

SELECT订单.雇员ID,订单明细.产品ID,

Sum(订单明细.数量)AS销售数量

FROM订单INNERJOIN订单明细

ON订单.订单ID=订单明细.订单ID

GROUPBY订单.雇员ID,订单明细.产品ID

HAVING(((Sum(订单明细.数量))>200));

对应的设计视图如下:

连接问题:

等值连接、自然连接、非等值连接、自身连接、外连接等

 

创建表

SQL语言中的createtable语句被用来建立新的数据库表格。

从在线帮助中查得的语法如下图所示:

其基本格式如下:

Createtabletablename

(column1datatype,column2datatype,column3datatype);

例如:

创建名为ThisTable的表,包含FirstNameLastName

CREATETABLEThisTable(

FirstNameTEXT(20),

LastNameTEXT(20));

简单来说,创建新表格时,在关键词createtable后面加入所要建立的表格的名称,然后在括号内顺次设定各列的名称,数据类型,以及可选的限制条件等。

注意,所有的SQL语句在结尾处都要使用“;”符号。

使用SQL语句创建的数据库表格和表格中列的名称必须以字母开头,后面可以使用字母,数字或下划线,名称的长度不能超过30个字符。

注意,用户在选择表格名称时不要使用SQL语言中的保留关键词,如select,create,insert等,作为表格或列的名称。

最后,在创建新表格时需要注意的一点就是表格中列的限制条件。

所谓限制条件就是当向特定列输入数据时所必须遵守的规则。

例如,unique这一限制条件要求某一列中不能存在两个值相同的记录,所有记录的值都必须是唯一的。

除unique之外,较为常用的列的限制条件还包括notnull和primarykey等。

Notnull用来规定表格中某一列的值不能为空。

Primarykey则为表格中的所有记录规定了唯一的标识符。

例如:

“数据定义查询-创建ThisTable表”查询对象。

删除表

SQL语言中的DROP语句被用来删除数据库中的表、查询、索引、存储过程。

从在线帮助中查得的语法如下图所示:

例如:

删除上例用CreateTable语句创建的“ThisTable”表

DROPTABLEThisTable;

修改表

ALTERTABLE语句用来修改CREATETABLE语句创建好的表设计,包括增加新字段ADD、删除DROP和修改ALTER已有字段。

语法如下图:

例如:

在“ThisTable”表中增加“DateOfBirth”字段:

ALTERTABLEThisTableADDCOLUMNDateOfBirthDATETIME;

利用ALTERTABLE来定义外键、约束等,例如:

向表格中插入数据

SQL语言使用insert语句向数据库表格中插入或添加新的数据行。

例如:

向“ThisTable”表中插入一条值为(“Nancy”,“Davolio”)记录

insertintoThisTable(firstname,lastname)

values(”Nancy”,“Davolio”);

参见查询对象“SQL语句-插入一条记录”。

简单来说,当向数据库表中添加新记录时,在关键词insertinto后面输入所要添加的表格名称,然后在括号中列出将要添加新值的列的名称。

最后,在关键词values的后面按照前面输入的列的顺序对应的输入所有要添加的记录值。

又例如:

从雇员表中选择姓氏为“Buchanan”的雇员记录插入“ThisTable”表中(参见查询对象“SQL语句追加多条记录”),SQL语句如下:

INSERTINTOThisTable(LastName,FirstName)

SELECT雇员.姓氏,雇员.名字

FROM雇员

WHERE(((雇员.姓氏)="Buchanan"));

更新记录

SQL语言使用update语句更新或修改满足规定条件的现有记录。

Update语句的格式为:

updatetablename

setcolumnname=newvalue[,nextcolumn=newvalue2...]

where[condition];

例如:

将“ThisTable”表中姓氏为“Buchanan”的雇员记录的“DateOfBirth”字段值更新为#10/18/1982#(参见查询对象“SQL语句-更新记录”),对应的SQL语句为:

UPDATEThisTableSETThisTable.DateOfBirth=#10/18/1982#

WHERE(((ThisTable.LastName)="Buchanan"));

使用update语句时,关键一点就是要设定好用于进行判断的where条件从句。

删除记录

SQL语言使用delete语句删除数据库表格中的行或记录。

Delete语句的格式为:

deletefromtablename

where[condition];

例如:

删除“ThisTable”表中姓氏为“Buchanan”的雇员记录

deletefromThisTable

where(((ThisTable.LastName)="Buchanan"));

简单来说,当需要删除某一行或某个记录时,在deletefrom关键词之后输入表格名称,然后在where从句中设定删除记录的判断条件。

注意,如果用户在使用delete语句时不设定where从句,则表格中的所有记录将全部被删除。

以上对SQL语言主要的命令和语句进行了较为详细的介绍。

应该说SQL语句的语法结构和风格还是相当简单和直观的,只要用户结合实践多加练习,一定会在短期内迅速掌握。

下面的SQL语句为SQLServer2000的Northwind数据库中创建“Customers”表的脚本。

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[FK_CustomerCustomerDemo_Customers]')andOBJECTPROPERTY(id,N'IsForeignKey')=1)

ALTERTABLE[dbo].[CustomerCustomerDemo]DROPCONSTRAINTFK_CustomerCustomerDemo_Customers

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[FK_Orders_Customers]')andOBJECTPROPERTY(id,N'IsForeignKey')=1)

ALTERTABLE[dbo].[Orders]DROPCONSTRAINTFK_Orders_Customers

GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Customers]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[Customers]

GO

CREATETABLE[dbo].[Customers](

[CustomerID][nchar](5)COLLATEChinese_PRC_CI_ASNOTNULL,

[CompanyName][nvarchar](40)COLLATEChinese_PRC_CI_ASNOTNULL,

[ContactName][nvarchar](30)COLLATEChinese_PRC_CI_ASNULL,

[ContactTitle][nvarchar](30)COLLATEChinese_PRC_CI_ASNULL,

[Address][nvarchar](60)COLLATEChinese_PRC_CI_ASNULL,

[City][nvarchar](15)COLLATEChinese_PRC_CI_ASNULL,

[Region][nvarchar](15)COLLATEChinese_PRC_CI_ASNULL,

[PostalCode][nvarchar](10)COLLATEChinese_PRC_CI_ASNULL,

[Country][nvarchar](15)COLLATEChinese_PRC_CI_ASNULL,

[Phone][nvarchar](24)COLLATEChinese_PRC_CI_ASNULL,

[Fax][nvarchar](24)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

GO

查询思考:

已知书目查询界面如下:

查询结果:

问:

对应的表结构及查询可能是什么?

在例如,下图所示为邮件系统的用户界面,其基本操作是:

●点击收件箱,出现图中部的邮件列表;

●选中某个/某几个邮件,执行“删除”,被选中的邮件从收件箱删除,并被保存到垃圾箱中。

问:

对应的表结构及查询可能是什么?

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2