SQL语句1Word格式.docx

上传人:b****8 文档编号:22714939 上传时间:2023-02-05 格式:DOCX 页数:42 大小:461.64KB
下载 相关 举报
SQL语句1Word格式.docx_第1页
第1页 / 共42页
SQL语句1Word格式.docx_第2页
第2页 / 共42页
SQL语句1Word格式.docx_第3页
第3页 / 共42页
SQL语句1Word格式.docx_第4页
第4页 / 共42页
SQL语句1Word格式.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

SQL语句1Word格式.docx

《SQL语句1Word格式.docx》由会员分享,可在线阅读,更多相关《SQL语句1Word格式.docx(42页珍藏版)》请在冰豆网上搜索。

SQL语句1Word格式.docx

设置录入时间列的默认值为系统当前时间

将subJectID设置为主键

添加外键关系

设置为级联更新和级联删除

添加到TSubject表的引用

不设置级联更新和级联删除

将studentID和subJectID作为复合主键。

1.4插入数据

将Excel中的数据插入表TStudent。

insertdbo.TStudent(StudentID,Sname,cardID,sex,Birthday,Class)SELECTconvert(nvarchar(15),convert(int,学号)),姓名,身份证号,性别,出生日期,班级

FROMOpenDataSource('

Microsoft.Jet.OLEDB.4.0'

'

DataSource="

C:

\studentInfo.xls"

;

Extendedproperties=Excel5.0'

)...[Sheet1$]

第2章元Transact-SQL概述

概述

2.1Ttansact-SQL编程语言

美国国家标准协会(ANSI)和国际标准组织(ISO)为SQL定义了标准,微软通过用Transact-SQL和ANSI—SQL兼容,Transact-SQL还包含了几种能够增强性能的扩展。

2.1.1Ttansact-SQL语句的类型

Ø

数据定义语言(DateDefinitionLanguage)语句

DDL语句通过生成数据库、表、和用户自定义的数据库

createobject_name

alterobject_name

dropobject_name

usenorthwind

createtablecustomer

(cust_idint,companyvarchar(40),contactvarchar(30),phonechar(12))

数据控制语言(DatecontrolLanguage)语句

用于改变某个用户或角色相关联的权限

grant

deny

revoke

usenorthwind

grantselectonproductstopublic

数据操作语言(DateManipulationLanguage)语句

操作数据库中的数据。

你可以更改数据库中的数据或查询数据库中的信息。

Select

Insert

Delecte

Update

usenorthwind

selectcategoryid,productname,productid,unitpricefromproducts

2.1.2Transact-SQL语法要素

批处理

go

一个批处理命令通知SQLServer分析并运行一个批处理的所有指令

实际上不是Transact-SQL语句,只是描述一个批处理。

局部变量作用范围局限在一个批内,必须独占一行。

Exec

用于执行用户自定义的函数,系统存储过程,用户自定义的存储过程或扩展存储过程

注释语句

作为注释或在测试时是一些语句无效

嵌于行内的注释语句

SELECTproductname,(unitsinstock-unitsonorder)--Calculatesinventory

supplierID

FROMproducts

2.2GO

块注释语句

/*

Thiscoderetrievesallrowsoftheproductstable

anddisplaystheunitprice,theunitpriceincreased

by10percent,andthenameoftheproduct.

*/

USEnorthwind

SELECTunitprice,(unitprice*1.1),productname

GO

2.3标识符

标准标识符

第一个字符是a-z或A-Z

第一个字符后可以是数字,字母,或各种符号@,$,_

第一个字母是符号时表示有特殊的用途

@代表局部变量或参数

#代表临时表和存储过程

##代表一个全局临时表

限定表示符

当对象名包含空格时,当用保留关键字被用作对象的名字时,必须使用括号和引号把限定标识符括起来

select*from[orderdetails]

或只有setquoted_identifieron/off

select*from"

orderdetails"

标识符的命名原则

有意义

使用简单明了的命名习惯

能够区分对象的类型的标识符viewtable

保持对象名和用户名的唯一性sales用户sales表

2.4数据类型

数字型代表数字inttinyintsmallintbigint十进制小数moneysmallmoneydecimal浮点数和real

日期型datetime可以精确到0.333毫秒small

字符型包括char和nchar也包含变长字符类型varchar和nvarchar

二进制型Binary和varbinary,bit代表一位的值0或1,rowversion代表数据库中唯一的8位二进制。

唯一标识代表一个全局特殊标识符(GUID),是一个16位16进制的值。

SQL变量包括SQL所支持的各种数据类型,但不包括text,ntext,rowversion和sql_variant这几种数据类

位图和文本(immage&

text)属于大型二进制对象结构

表这种数据类型代表一个表结构,将一个表保存在一个字段中

游标这种数据类型用于存储过程的编程

用户自定义数据类型由数据库管理员生成,它基于系统数据类型,当多个表需要在一个字段存储同一类型数据时,这些字段具有相同的数据类型、长度和可控属性时,选择实用用户自定义的数据类型。

2.5变量

使用Declare定义局部变量,@局部变量作用域仅限于一个批处理中,@@而全局变量在整个会话有效

declare@EmpIDvarchar(11),@vlNamechar(20)

set@vlName='

Dodsworth'

select@EmpID=employeeidfromemployeeswhereLastName=@vlName

select@EmpIDasEmployeeID

2.6系统函数

聚集函数---对于一个集合中的值进行运算,返回一个单一的,汇总的值。

selectavg(unitprice)asAvgPricefromproducts

标量函数---只对单个值进行运算并返回单一的值,只要表达式正确,就可以使用这些函数

selectDB_name()as'

database'

行级函数---在T-SQL语句中,记录集函数可以用作表来使用。

Select*fromopenquery(oracleSrv,’selectname,idfromowner.titles’)

Go

2.6.1系统函数范例

1.把时间转化成其他各式

select'

ansi:

convert(varchar(30),getdate(),102)asstyle

union

Japanese'

convert(varchar(30),getdate(),111)

union

European'

convert(varchar(30),getdate(),113)

运算符

算数运算符+-*/%

比较运算符=<

>

>

=

字符串联运算符+空字符不等于空值

逻辑运算符andornot

表达式

表达式是各种符号和对单个数据进行操作进行

selectorderID,ProductID,(UnitPrice*Quantity)asExtendedAmount

from[orderdetails]

where(UnitPrice*Quantity)>

10000

流控制语言

语句集

Begin….end

If….else

while

ifexists(select*fromorderswherecustomerID='

frank'

print'

***CustomerCannontbedeleted***'

elsebegin

deleteCustomerswherecustomerid='

***Customerdeleted***'

end

deleteorderswherecustomerID='

行级

declare@ntinyint

set@n=5

if(@nbetween4and6)

begin

while(@n>

0)

begin

select@nas'

Number'

case

when(@n%2)=1

then'

EVEN'

else'

ODD'

endas'

Type'

set@n=@n-1

else

NoAnalysis'

保留关键字----在T-SQL语句的任何地方都不能使用已经定义的保留关键字

selectProductID,'

ProductInventoryStatus'

=case

when(UnitsInStock<

UnitsOnOrderandDiscontinued=0)then'

NegativeInventory--OrderNow'

when((UnitsInStock-UnitsOnOrder)<

Reorderlevelanddiscontinued=0)then'

Reorderlevelreached-placeOrder'

when(Discontinued=1)then'

***Discontinued***'

InStock'

fromnorthwind..Products

2.7试验A使用SQLServer联机帮助

附:

字符串函数

selectdateadd(yy,4,(getdate()))表示对当时时间加4年

selectdateadd(qq,2,(getdate()))季度

selectdateadd(mm,2,(getdate()))月

selectdateadd(dd,2,(getdate()))日

selectdateadd(wk,2,(getdate()))周

selectdateadd(hh,2,(getdate()))小时

selectdateadd(mi,2,(getdate()))分钟

selectdateadd(ss,2,(getdate()))秒

selectdateadd(dy,3,getdate()))一年中的第几天

selectdatediff(day,'

2005-3-4'

getdate())返回时间差

selectdatepart(day,getdate())

下面是日期型转化成变长字符串,再将变长字符转化成日期型

declare@chvarchar(19)

declare@tdatetime

set@t=getdate()

select@t

set@ch=convert(varchar(19),year(@t))+'

-'

+convert(varchar(19),month(@t))+'

+convert(varchar(19),day(@t))

select@ch

selectconvert(datetime,@ch)

使用WaitfordelayorWaitfortime知道指定的时间

begintran

updateauthorssetau_lname=au_lname

waitfordelay'

00:

10'

updatetitlessettitle=title

rollbacktran

第3章使用Transact-SQL的查询工具

3.1SQL查询分析器

一个使用方便的文本编辑器

代码颜色转换

带有网格或文本输出的多重查询窗口

执行脚本一部分

查询执行的信息

3.1.1使用SQL查询分析器中的对象浏览工具

对象浏览器有如下功能

为对象生成脚本---生成创建对象的脚本,selectinsertupdate

执行存储过程---执行存储过程,当执行有参数的存储过程时,对象浏览器提示你输入参数的值

打开表----显示查询结果,可以编辑、插入或删除行

改变数据库中的对象

使用Transact-SQL模板

生成数据库,表,视图,索引,存储过程,统计数字和函数

管理扩展属性、连接的服务器、登陆帐号、角色和用户

声明及使用游标

定制脚本

3.1.2使用osql工具

Osql使用SQLServerODBC同服务器进行通信,参数区分大小写。

可以从批文件或命令行运行这个软件。

osql–Sonest00–E使用集成的身份验证连接

osql–Sonest00–Usa–P123区分大小写

reset清除已经输入的所有语句

ED调用编辑器

command执行一个操作系统命令

QUIT或EXIT从osql中退出

CTRL+C结束一个osql查询,但不退出osql

1、执行Transact-SQL语句

在运行时动态构造并执行Transact-SQL语句

使用批组织一起要执行的语句

使用脚本文件保存批语句,以供日后使用

declare@dbnamevarchar(30),@tblnamevarchar(30)

set@dbname='

northwind'

set@tblname='

products'

execute

('

use'

+@dbname+'

select*from'

+@tblname)

使用批

提交一个语句或同时提交多个语句,只有在SQL查询分析器或osql工具接受这个语句,在ODBC或ODBCAPI的应用程序使用go将会出现错误。

SQLServer优化、编译并执行批中的语句,用户自定义的变量有效范围局限于一个批内部。

对象生成语句必须使用单独的批,批中不能同时出现的语句

Createprocedure

Createview

Createtrigger

Createruleas

3.2Createdefault

使用脚本

使用SQL查询分析器或写字板之类的任何其它文本编辑器,编写并保存脚本,扩展名.sql

1.最佳实践

使用SQL查询分析器可以建立和SQLServer的多个连接,可为对象生成脚本的功能

使用对象浏览工具来查找表和字段名,或为他们生成脚本

使用模板生成对象

运行批文件或执行重复性任务时,使用osql

把经常使用的Transact-SQL语句保存在文件中,可以以后使用。

2.试验A创建并执行Transact—SQL脚本

第4章数据查询

4.1使用select语句查询数据

4.1.1指定列

selectemployeeId,lastname,firstname,titlefromemployees

使用where子句指定行

selectemployeeId,lastname,firstname,titlefromemployeeswhereemployeeid=5

4.1.2过滤数据

使用比较操作符=>

<

=<

selectlastname,cityfromemployeeswherecountry='

usa'

selectorderid,customeridfromorderswhereorderdate>

1996-07-04'

使用字符比较符like

%0个或多个字符串

_任何单个的字符

[]在指定区域或集合内的任何单个字符

[^]不在指定区域或集合内的任何单个字符

use

northwind

selectcompanynamefromcustomerswherecompanynamelike'

%Restaurant%'

4.1.3使用逻辑操作符

selectproductid,productname,supplierid,unitpricefromproducts

where(productnamelike'

T%'

orproductid=46)

and(unitprice>

16.00)

whereproductnamelike'

or(productid=46

andunitprice>

4.1.4查询在一定范围内的值

selectproductname,unitpricefromproducts

whereunitpricebetween10and20

包括10和20

selectproductname,unitpricefromproducts

where(unitprice>

10)and(unitprice<

20)

不包括10和20

尽量使用between而不使用and和比较操作符表示的表达式

如果想返回不在指定区域的行时,使用notbetween。

这样会降低数据查询的速度。

4.1.5使用值的列表作为搜索条件

selectcompanyname,countryfromsuppliers

wherecountryin('

japan'

'

italy'

使用in或使用由or操作符连接起来的一系列比较操作符,SQLServer在处理他们的方式相同。

不要在搜索条件结尾使用NULL,这将返回意想不到的结果。

可以使用notin,降低数据查询速度。

4.1.6查询未知的值

selectcompanyname,faxfromsuppliers

wherefaxisnull

使用isnotnull来查询指定列中非空的行

4.2格式化结果集

4.2.1给数据排序

selectproductid,productname,categoryid,unitpricefromproducts

orderbycategoryid,unitpricedesc

orderby3,4desc

asc升序

desc降序

sp_helpsort查看在安装过程中

4.2.2消除重复的行

selectdistinctcountryfromsuppliersorderbycountry

4.2.3改变字段的名字

selectfirstnameasfirst,lastnameasLast,employeeidas'

employeeID'

fromemployees

4.2.4使用符号

符号可能是字母,数字或标识,在结果集中,他们被用作特定的值,以增加结果集的可读性。

selectfirstname,lastname,'

Identificationnumber:

employeeidfromemployees

4.3查询的工作原理

非缓存的查询

所有查询在执行前,都需要经过一下步骤:

解释、解析、优化和编译

解析----检查语句的语法是否正确

解析----校验语句中出现的对象名称是否有效,同时检查对象的所有权的权限

优化----检查是否能够使用索引

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

当前位置:首页 > 总结汇报 > 其它

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

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