版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1SQL基础教程
SQL就是用于访问与处理数据库得标准得计算机语言。
在本教程中,您将学到如何使用SQL访问与处理数据系统中得数据,这
类数据库包括:Oracle,Sybase,SQLServer,DB2,Access等等。
2SQL简介
SQL就是用于访问与处理数据库得标准得计算机语言。
什么就是SQL?
•SQL指结构化查询语言
•SQL使我们有能力访问数据库
•SQL就是一种ANSI得标准计算机语言
编者注:ANSI,美国国家标准化组织
SQL能做什么?
•SQL面向数据库执行查询
•SQL可从数据库联回数据
•SQL可在数据库中插入新得记录
•SQL可更新数据库中得数据
•SQL可从数据库删除记录
•SQL可创建新数据库
•SQL可在数据库中创建新表
•SQL可在数据库中创建存储过程
•SQL可在数据库中创建视图
•SQL可以设置表、存储过程与视图得权限
SQL就是一种标准-但就是、、、
SQL就是一门ANSI得标准计算机语言,用来访问与操作数据库系统。SQL语句用于取回与
更新数据库中得数据。SQL可与数据库程序协同工作,比如MSAccess.DB2.Informix.MS
SQLServer、Oracle、Sybase以及其她数据库系统。
不幸地就是,存在着很多不同版本得SQL语言,但就是为了与ANSI标准相兼容,它们必须
以相似得方式共同地来支持一些主要得关键词(比如SELECT.UPDATE.DELETE.INSERT.WHERE
等等)。
注释:除了SQL标准之外,大部分SQL数据库程序都拥有它们自己得私有扩展!
在您得网站中使用SQL
要创建发布数据库中数据得网站,您需要以下要素:
•RDBMS数据库程序(比如MSAccess,SQLServer,MySQL)
•服务器端脚本语言(比如PHP或ASP)
•SQL
•HTML/CSS
RDBMS
RDBMS指得就是关系型数据库管理系统。
RDBMS就是SQL得基础,同样也就是所有现代数据库系统得基础,比如MSSQLServer,IBM
DB2,Oracle,MySQL以及MicrosoftAccess。
RDBMS中得数据存储在被称为表(tabIes)得数据库对象中。
表就是相关得数据项得集合,它由列与行组成。
3SQL语法
数据库表
一个数据库通常包含一个或多个表。每个表由一个名字派识(例如“客户”或者“订单”)。
表包含带有数据得记录(行)。
下面得例子就是一个名为"Persons"得表:
1AdamsJohnOxfordStreetLondon
2BushGeorgeFifthAvenueNewYork
3CarterThomasChanganStreetBeijing
上面得表包含三条记录(每一条对应一个人)与五个列(Id、姓、名、地址与城市)。
SQL语句
您需要在数据库上执行得大部分工作都由SQL语句完成。
下而得语句从表中选取LastName列得数据:
SELECTLastNameFROMPersons
结果集类似这样:
在本教程中,我们将为您讲解各种不同得SQL语句。
重要事项
一定要记住,SQL对大小写不敏感!
SQL语句后面得分号?
某些数据库系统要求在每条SQL命令得末端使用分号。在我们得教程中不使用分号。
分号就是在数据库系统中分隔每条SQL语句得标准方法,这样就可以在对服务器得相同请
求中执行一条以上得语句,
如果您使用得就是MSAccess与SQLServer2000,则不必在每条SQL语句之后使用分号,
不过某些数据库软件要求必须使用分号。
SQLDML与DDL
可以把SQL分为两个部分:数据操作语言(DML)与数据定义语言(DDL)。
SQL(结构化查询语言)就是用于执行查询得语法。但就是SQL语言也包含用于更新、插入
与删除记录得语法。
查询与更新指令构成了SQL得DML部分:
•SELECT-从数据库表中获取数据
•UPDATE-更新数据库表中得数据
•DELETE-从数据库表中删除数据
•INSERTINTO-向数据库表中插入数据
SQL得数据定义语言(DDL)部分使我们有能力创建或删除表格。我们也可以定义索弓I(键),
规定表之间得捱接,以及施加表间得约束。
SQL中最重要得DDL语句:
•CREATEDATABASE-创建新数据库
•ALTERDATABASE-修改数据库
•CREATETABLE-创建新表
•ALTERTABLE-变更(改变)数据库表
•DROPTABLE-删除表
•CREATEINDEX-创建索弓1(搜索键)
•DROPINDEX-删除索引
4SQLSELECT语句
本章讲解SELECT与SELECT*语句。
SQLSELECT*实例
现在我们希望从''Persons"表中选取所有得列。
请使用符号*取代列得名称,就像这样:
SELECT*FROMPersons
星号住)就是选取所有列得快捷方式。
结果:
1AdamsJohnOxfordStreetLondon
2BushGeorgeFifthAvenueNewYork
3CarterThomasChanganStreetBeijing
在结果集(resuIt-set)中导航
由SQL查询程序获得得益果被存放在一个结果集中。大多数数据库软件系统都允许使用编
程函数在结果集中进行导航,比如:Move-To-First-Record、Get-Record-Contents
Move-To-Next-Record等等。
通过列名查找表名
seIecttab,name
fromsyscoIumnsascol
innerjoinsysobjectsastaboncol>id=tab、id
wherecol、name='列名’
5SQLSELECTDISTINCT语句
本章讲解SELECTDISTINCT语句。
SQLSELECTDISTINCT语句
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)
得值。
关键词DISTINCT用于返回唯一不同得值。
语法:
SELECTDISTINCT列名称FROM表名称
使用DISTINCT关键词
如果要从”pany"列中选取所有得值,我们需要使用SELECT语句:
SELECTpanyFROMOrders
"Orders"表:
IBM3532
W3School2356
Apple4698
W3School6953
结果:
请注意,在结果集中,W3School被列出了两次。
如需从pany"列中仅选取唯一不同得值,我们需要使用SELECTDISTINCT语句:
SELECTDISTINCTpanyFROMOrders
结果:
IBM
W3School
Apple
现在,在结果集中,"W3School"仅被列出了一次。
6SQLWHERE子句
WHERE子句用于规定选择得标准。
WHERE子句
如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句。
语法
SELECT列名称FROM表名称WHERE列运算符,直
下面得运算符可在WHERE子句中使用:
=等于|
<>不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式
注释:在某些版本得SQL中,操作符<>可以写为!二。
使用WHERE子句
如果只希望选取居住在城市"Beijing"中得人,我们需要向SELECT语句添加WHERE子
句:
SELECT*FROMPersonsWHERECity=*Beijing'
"Persons',表
AdamsJohnOxfordStreetLondon1970
BushGeorgeFifthAvenueNewYork1975
CarterThomasChanganStreetBeijing1980
GatesBillXuanwumen10Beijing1985
结果:
CarterThomasChanganStreetBeijing1980
GatesBillXuanwumen10Beijing1985
引号得使用
请注意,我们在例子中得条件值周围使用得就是单引号。
SQL使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果就是数值,请不要使
用引号。
文本值:
这就是正确得:
SELECT*FROMPersonsWHEREFirstName='Bush'
这就是错误得:
SELECT*FROMPersonsWHEREFirstName=Bush
数值:
这就是正确得:
SELECT*FROMPersonsWHEREYear>1965
这就是错误得:
SELECT*FROMPersonsWHEREYear>'1965'
7SQLAND&OR运算符
AND与OR运算符用于基于一个以上得条件对记录进行过滤。
AND与OR运算符
AND与OR可在WHERE子语句中把两个或多个条件结合起来。
如果第一个条件与第二个条件都成立,则AND运算符显示一条记录。
如果第一个条件与第二个条件中只要有一个成立,则OR运算符显示一条记录。
原始得表(用在例子中得):
AdamsJohnOxfordStreetLondon
BushGeorgeFifthAvenueNewYork
CarterThomasChanganStreetBeijing
CarterWilliamXuanwumen10Beijing
AND运算符实例
使用AND来显示所有姓为"Carter"并且名为"Thomas"得人:
SELECT*FROMPersonsWHEREFirstName='Thomas'AND
LastName='Carter'
结果:
OR运算符实例
使用OR来显示所有姓为"Carter"或者名为"Thomas"得人:
SELECT*FROMPersonsWHEREfirstname='Thomas'ORIastname=,Carter
结果:
CarterThomasChanganStreetBeijing
CarterWiliamXuanwumen10Beijing
结合AND与OR运算符
我们也可以把AND与OR结合起来(使用圆括号来组成复杂得表达式):
SELECT*FROMPersonsWHERE(FirstName='Thomas'OR
FirstName='WiIIiam')
ANDLastName=,Carter'
结果:
CarterThomasChanganStreetBeijing
CarterWiliamXuanwumen10Beijing
8SQLORDERBY子句
ORDERBY语句用于对结果集进行排序。
ORDERBY语句
ORDERBY语句用于根据指定得列对结果集进行排序。
ORDERBY语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用DESC关键字。
原始得表(用在例子中得):
Orders表:
IBM3532
W3School2356
Apple4698
W3School6953
实例1
以字母顺序显示公司名称:
SELECTpany,OrderNumberFROMOrdersORDERBYpany
结果:
Apple4698
IBM3532
W3School6953
W3School2356
实例2
以字母顺序显示公司名称(pany),并以数字顺序显示顺序号(OrderNumber):
SELECTpany,OrderNumberFROMOrdersORDERBYpany,OrderNumber
结果:
Apple4698
IBM3532
W3School2356
W3School6953
实例3
以逆字母顺序显示公司名称:
SELECTpany,OrderNumberFROMOrdersORDERBYpanyDESC
结果:
W3School6953
W3School2356
IBM3532
Apple4698
实例4
以逆字母顺序显示公司名称,并以数字顺序显示顺序号:
SELECTpany,OrderNumberFROMOrdersORDERBYpanyDESC,OrderNumber
ASC
结果:
W3School2356
W3School6953
IBM3532
Apple4698
注意:在以上得结果中有两个相等得公司名称(W3School)。只有这一次,在第一列中有相同
得值时,第二列就是以升序排列得。如果第一列中有些值为nulls时,情况也就是这样得。
9SQLINSERTINTO语句
INSERTINTO语句
INSERTINTO语句用于向表格中插入新得行。
语法
INSERTINTO表名称VALUES(值1,值2,、、、、)
我们也可以指定所要插入数据得列:
INSERTINTOtable_nane(列1,列2,、、、)VALUES(值1,值2,、、、、)
插入新得行
"Persons"表:
CarterThomasChanganStreetBeijing
SQL语句:
INSERTINTOPersonsVALUES('Gates','Bill','Xuanwumen10',
'Beijing')
结果:
CarterThomasChanganStreetBeijing
GatesBillXuanwumen10Beijing
在指定得列中插入数据
"Persons"表:
CarterThomasChanganStreetBeijing
GatesBillXuanwumen10Beijing
SQL语句:
INSERTINTOPersons(LastName,Address)VALUES('Wilson,,
'Champs-EIysees')
结果:
CarterThomasChanganStreetBeijing
GatesBillXuanwumen10Beijing
WilsonChamps-Elysees
10SQLUPDATE语句
Update语句
Update语句用于修改表中得数据。
语法:
UPDATE表名称SET列名称二新值WHERE列名称二某值
Person:
Ga
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 投资保险合同
- 2026年软件买卖使用合同(1篇)
- 培训合同与劳动合同核心解析
- 教学设计模板
- 2026年幼儿行为观察记录与分析
- 2026年篮球培训校企合作拓展方案
- 2026年高处坠落典型事故案例分析与警示
- 化学九年级第7单元课题1教学设计
- 肿瘤科肺癌手术术后康复计划
- 儿童脊柱侧弯科普与防治指南
- E6(R3):药物临床试验质量管理规范(原则及草案)
- 岗位晋升申请书理由
- 外研版(2025新版)七年级下册英语Unit 1 学情调研测试卷(含答案)
- T-CNCIA 02020-2024 含异氰脲酸三缩水甘油酯(TGIC)的粉末涂料密闭生产工艺要求
- 车辆挂靠协议书简单的
- Dassault Systèmes ENOVIA:ENOVIA基础概念与架构.Tex.header
- 天津2024年天津市津南区事业单位招聘29人笔试历年典型考题及考点附答案解析
- 部编版语文六年级下册第五单元大单元教学设计核心素养目标
- 医疗器械培训试题及答案
- 婴幼儿照护全套教学课件
- 个人垫资工程合同范本
评论
0/150
提交评论