sql代码.docx

上传人:b****7 文档编号:10242525 上传时间:2023-02-09 格式:DOCX 页数:19 大小:20.31KB
下载 相关 举报
sql代码.docx_第1页
第1页 / 共19页
sql代码.docx_第2页
第2页 / 共19页
sql代码.docx_第3页
第3页 / 共19页
sql代码.docx_第4页
第4页 / 共19页
sql代码.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

sql代码.docx

《sql代码.docx》由会员分享,可在线阅读,更多相关《sql代码.docx(19页珍藏版)》请在冰豆网上搜索。

sql代码.docx

sql代码

--回顾我们之前的创建数据库和表的代码我们会发现

createdatabasemyOffice--创建数据库(默认创建的是C盘)

dropdatabasemyOffice--删除数据库

createdatabasemyOfficeonprimary--创建主数据库文件(可以创建到我们指定的地方)

(--每个数据库都有一个主数据库也是唯一的一个

name='myOffice_DB',

--命名方式有:

驼峰式例如stuName,stuId首字母小写,其他字母都大写。

--帕斯卡式例如StuInfo首字母全都大写

filename='D:

\lolly\myOffice_DB.mdf',--主数据库文件的后缀名是.mdf

size=5mb,--初始大小最小5mb

maxsize=1000mb,--最大范围

filegrowth=15%--文件的自动增长(不能大于最大范围)

),(

name='myOfficeNDB',---创建此数据库文件,一个数据库可以有多个次数据库文件

filename='D:

\lolly\myOfficeNDB.ndf',--次数据库的文件的后缀名为.ndf

size=5mb,

maxsize=500mb,

filegrowth=30mb

logon--创建日志文件(一个数据库可以有多个日志文件)

name='myOffice_log',--文件的名称

filename='D:

\lolly\myOffice_log.ldf',--日志文件的后缀名是.ldf

size=2mb,--初始大小

maxsize=1000mb,--最大尺寸

filegrowth=20mb--文件的自动增长

go

--修改数据库

alterdatabasemyOffice

modifyfile(name=myOffice_DB,size=40mb,maxsize=400mb)

go

usemyOffice--使用数据库

go

sp_spaceused--存储过程

createtablestudent--创建表

stuIdintprimarykeyidentity(1,1)notnull,--主键和自动增长列

stuNamevarchar(8)notnull

--DQL

select*fromstudent--查询所有信息

--===DML

insertintostudentvalues('wangwu')--插入语句

insertintostudentvalues('lisi')

insertintostudentvalues('zhangsan')

insertintostudentvalues('zhaoliu')

--更新语句

updatestudentsetstuName='王小六'wherestuId=3

--删除表数据

deletestudentwherestuId=1

--------------------------注视,单行注视和多行注释

/*

在创建表的时候我们也是需要考虑数据类型的,分为

结构化,半结构化,非结构化的数据类型

*/

--数据类型--数值,字符串,日期和时间,二进制

declare@anvarchar(4)

set@a='a'

select@aas'日期'

--charvarcharncharnvarchar的区别

--查询数据2.5页

/*

char:

它用于将固定长度字符数据储存在变量中,

char(50)---10-----40(浪费)

varchar:

它用于将可变长度字符数据存储在变量中,

它在变量声明的时候不保存内存空间。

相反

它根据存储在变量中的数据大小分配内存。

varchar(100)50就生成50个字符的空间,

不会有内存损失

nchar:

它支持固定长度最长为4000个字符的unicode数据。

它需要的存储空间是char数据类型所需存储空间的两倍。

nvarchar:

它分配类似于varchar数据类型的内存。

但是,它只存储unicode字符。

他需要的是varchar所需存储空间的两倍。

其中所说的Unicode是国际码,表示字符的行业通用计算标准。

它为每个字符分配唯一的数字,以使此类字符在不同的平台和语言中

以相同方式表示。

-------国际化(WEB)

*/

-----检索特定属性----------------------------------------------

USEAdventureWorks--数据库中不区分大小写,但是规则是以大写为准

GO

SELECT*FROMHumanResources.Employee--回顾查询全部信息

GO

selectcount(*)fromHumanResources.Employee

GO

--查看部分列信息

SELECTk.EmployeeID,k.NationalIDNumber

FROMHumanResources.Employeeask

go

SELECTEmployeeID,ContactID,LoginID,Title

FROMHumanResources.Employee

GO

--使用AS起别名

--首先给表起别名

/*SELECT*FROMHumanResources.DepartmentASa

select'姓名'=a.Name,'----------->''指示','fff'=a.GroupName

fromHumanResources.Departmenta

selectt.GroupName+'----->'+t.Name'看一看'

fromHumanResources.Departmentt

*/

--部分列信息查看可以使用多种方法

--使用as其别名通过‘.’操作符调用对应的列名比较方便。

selecta.DepartmentID,a.GroupName

fromHumanResources.Departmentasa

go

--给类添加列头

selecta.DepartmentID'部门编号',a.GroupName'部门名称'

fromHumanResources.Departmenta--此时as可以省略

go

--小练习,查询员工表employee表中的所有信息(查询数据2.9)

--小练习,并查询任意三列信息

--小练习,给这三列分别添加中文列头

--通过字面值来进行标记显示字面值将在单独的列中打印

--字面值用于显示用途

--1

SELECT'部门编号'=DepartmentID,'DepartmentName'=Name

FROMHumanResources.Department

--2

SELECTDepartmentID'DepartmentNumber',Name'DepartmentName'

FROMHumanResources.Department

--3

SELECTDepartmentIDAS'DepartmentNumber',NameAS'DepartmentName'

FROMHumanResources.Department

go

----字面值-----自定义显示----显示用途

SELECTEmployeeID,'Designation-------》',Title

FROMHumanResources.Employee

go

--并置输出中的文本值--字符串类型

SELECTName+'departmentcomesunder--->'+GroupName+'group'

ASDepartment

FROMHumanResources.Department

selecte.ManagerID+e.EmployeeID

fromHumanResources.Employeee

go

/*

我们已经学过了关系运算符,现在开始学习

其它运算符包括

算术运算符,

比较运算符,

逻辑运算符,

范围运算符

*/

--算数运算符都能在

--select语句中以任何组合形式和数字常量一起使用

SELECTEmployeeID,Rate,Per_Day_Rate=8*Rate

FROMHumanResources.EmployeePayHistory

go

--比较运算符---

--在where子句中可以使用比较运算符来指定条件

--但是不能用在text,ntext,image

--数据类型表达式中

SELECT*FROMHumanResources.Department

WHEREGroupName<>'ResearchandDevelopment'

go

SELECTEmployeeID,NationalIDNumber,Title,VacationHours

FROMHumanResources.Employee

WHEREVacationHours<5

go

--逻辑运算符--检索满足一个或者多个条件的记录

SELECT*FROMHumanResources.Department

WHERE

GroupName='Manufacturing'ORGroupName='QualityAssurance'

go

--范围运算符--BETWEENAND

SELECTEmployeeID,VacationHours

FROMHumanResources.Employee

WHEREVacationHoursBETWEEN20AND50

go

SELECTEmployeeID,Title,LoginID

FROMHumanResources.Employee

WHERETitleIN('Recruiter','Stocker')

go

--模糊查询

SELECT*FROMHumanResources.Department

WHERENameLIKE'Pro%'

go

SELECTEmployeeID,EndDate

FROMHumanResources.EmployeeDepartmentHistory

WHEREEndDateISNULL

go

SELECTSalesPersonID,ISNULL(SalesQuota,0.00)AS'SalesQuota'

FROMSales.SalesPerson

go

SELECTEmployeeID,COALESCE(ResidenceOffice,Mobile_Number)

ASContact_NumberFROMPerson.ContactType

go

SELECTGroupName,DepartmentID,Name

FROMHumanResources.Department

ORDERBYGroupName,DepartmentID

go

SELECTTOP10*FROMHumanResources.Employee

go

-------2012新特征-----------------------------------------------------

SelectEmployeeID,NationalIDNumber,ContactID,HireDate

fromHumanResources.EmployeeOrderByEmployeeID

OFFSET15ROWSFETCHNEXT10ROWSONLY

go

SELECTDISTINCTTitleFROM

HumanResources.Employee

WHERETitleLIKE'PR%'--DISTINCT后面跟多个列名

go

-----------------------------------------------------------第二章---------------------

--内置函数

selectGETDATE()--内置函数

SELECThost_id()as'HostID'--系统函数

go

--排名函数

SELECTGroupName,DepartmentID,Name

FROMHumanResources.Department

ORDERBYGroupName,DepartmentID

--使用函数对记录进行排名

SELECT*FROMHumanResources.EmployeeASHE

go

SELECTEmployeeID,NationalIDNumber,ContactID,HireDate

FROMHumanResources.Employee

ORDERBYEmployeeID

OFFSET15ROWSFETCHNEXT10ROWSONLY

go

--检索不重复数据

SELECT*FROMHumanResources.EmployeeWHERETitleLIKE'PR%'

go

SELECTCOUNT(*)FROMHumanResources.EmployeeWHERETitleLIKE'PR%'

go

---字符串函数

SELECT'DepartmentName'=Upper(Name),DepartmentID,GroupName

FROMHumanResources.Department--以大写的形式显示

SELECT'DepartmentName'=XXX(xxx),DepartmentID,GroupName

FROMHumanResources.Department--以大写的形式显示

--使用转换函数

--声明变量和常量的概念---已知数和未知数的区别

DECLARE@ggeography;

SET@g=geography:

:

Parse('LINESTRING(-122.36047.656,-122.34347.656)');

SELECT@g.ToString()

--=检索特定位置中的属性=

SelectEmployeeID,NationalIDNumber,ContactID,HireDate

fromHumanResources.Employee

OrderByEmployeeIDOFFSET15ROWSFETCHNEXT10ROWSONLY

-----------------------

SELECTTOP3*FROMSales.SalesPersonWHEREBonusBETWEEN4000AND6000

SELECTEmployeeID,upper(Title)ASDesignation,datediff(yy,Birthdate,getdate())ASAge

FROMHumanResources.EmployeeWHERETitle='MarketingManager'ORTitle='MarketingSpecialist'

go

SELECTSalesOrderID,ProductID,'AverageOrderQuantity'=avg(OrderQty)FROMSales.SalesOrderDetail

GROUPBYProductID,SalesOrderID

go

--使用日期函数--

SELECTGETDATE()

go

SELECTDATEDIFF(YY,BirthDate,GETDATE())as'age'

FROMHumanResources.Employee

go

SELECTTitle,DATEPART(YY,HireDate)AS'YEAROFJOINING'

FROMHumanResources.Employee

go

/*SELECTRegion,Department,AVG(SAL),

AverageSalary

FROMEmpTableGROUPBYGROUPINGSETS

(Region,Department),

(Region),

(Department)

*/

--------------------------上机练习----------------------

--1.--参考表Sales.Customer需要的知识点在书--查询数据2.9

--查询表里的全部数据

SELECT*FROMSales.Customer

selectcount(c.CustomerID)fromSales.Customerc

SELECTdistinct(s.TerritoryID)FROMSales.Customers

SELECTcount(distinct(s.TerritoryID))FROMSales.Customers

--2.

SELECT'CreditCardID'=CreditCardID,'CreditCardType'=CardType,'CreditCardNumber'=CardNumber,'ExpiryYear'=ExpYearfromSales.CreditCard

--3.

SELECTCustomerID,AccountNumberFROMSales.CustomerWHERETerritoryID=4

--4.

SELECT*FROMSales.SalesOrderDetailWHERELineTotal>2000.00

--5-.

SELECT*FROMSales.SalesOrderDetailWHEREProductID=843

--6.

SELECT*FROMSales.SalesOrderHeader

WHEREOrderDate='06-06-2004'

--7.

SELECT'OrderID'=SalesOrderID,'OrderQuantity'=OrderQty,

'UnitPrice'=UnitPrice,'TotalCost'=OrderQty*UnitPriceFROMSales.SalesOrderDetail

--8

SELECT*FROMSales.SalesOrderDetail

WHERELineTotalBETWEEN2000AND2100

--9

SELECTName,CountryRegionCode,SalesYTDFROMSales.SalesTerritoryWHERETerritoryID=1

--10

SELECT*FROMSales.SalesOrderHeaderWHERETaxAmt>=10000

--11

SELECT*FROMSales.SalesTerritoryWHERENameIN('Canada','France','Germany')

--12

SELECT'SalesPersonID'=SalesPersonID,'TerritoryID'=TerritoryIDFROMSales.SalesTerritoryHistoryWHERETerritoryID=2ORTerritoryID=4

--13

SELECT*FROMSales.CreditCardWHERECardType='Vista'ANDExpYear='2006'

--14

SELECT*FROMSales.SalesOrderHeaderWHEREShipDate>'2004-07-12'

--15

SELECT'OrderNumber'=SalesOrderID,'OrderDate'=OrderDate,Status,'TotalCost'=TotalDueFROMSales.SalesOrderHeader

WHEREOrderDate='07-01-2001'ANDTotalDue>10000

--16

SELECT*FROMSales.SalesOrderHeaderWHEREOnlineOrderFlag=1

--17

SELECT'OrderID'=SalesOrderID,'TotalDue'=TotalDueFROMSales.SalesOrderHeaderORDERBYTotalDueDESC

--18

SELECTSalesOrderID,TaxAmtFROMSales.SalesOrderHeader

WHERETotalDue<2000

ORDERBYTotalDueASC

--19

SELECTSalesOrderID,TotalDueFROMSales.SalesOrderHeader

ORDERBYTotalDueASC

--20

SELECT*FROMSales.CurrencyWHERENameLIKE'%Dollar%'

--21

SELECT*FROMSales.SalesTerritoryWHERENameLIKE'N%'

--22

SELECT'SalesPersonID'=SalesPersonID,'TerritoryID'=TerritoryID,'SalesQuota'=SalesQuotaFROMSales.SalesPersonWHERESalesQuotaISNOTNULL

--23

SELECTTOP3*FROMSales.SalesPersonORDERBYbonusDESC

--24

SELECT*FROMSales.StoreWHERENameLIKE'%bike%'

--25

SELECTDISTINCTCardTypeFROMSales.CreditCard

--26

SelectEmployeeId,LogInId,Title

fromHumanResources.Employee

OrderByEmployeeId

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

当前位置:首页 > 高等教育 > 军事

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

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