SQL数据库语句.docx
- 文档编号:28827674
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:17
- 大小:19.31KB
SQL数据库语句.docx
《SQL数据库语句.docx》由会员分享,可在线阅读,更多相关《SQL数据库语句.docx(17页珍藏版)》请在冰豆网上搜索。
SQL数据库语句
1.创建数据库
createdatabase"MYDatabase"onprimary(name=hehehe_data,filename='C:
\Users\admin\Desktop\36\hehehe1.mdf',size=5MB,maxsize=unlimited,filegrowth=2MB)logon(name=hehehe_log,filename='C:
\Users\admin\Desktop\36\hehehe1.ldf',size=5MB,maxsize=unlimited,filegrowth=10%)
2.创建数据表
use"MaterialStorage"
createtable[dbo].[入库表]([入库时间][varchar](50),[料号][varchar](50),[简称][varchar](50),[数量][int],[描述][varchar](50),[状态][varchar](50))
3.备份数据库
backupdatabasemydaytodisk='C:
\Users\admin\Desktop\36\ui.bak'
4.还原数据库
restoredatabasemydayfromdisk='C:
\Users\admin\Desktop\ooo.bak'withreplace
5.分离数据库(数据库分离到原数据库的磁盘位置上)
sp_detach_dbdbname='oooo'
附加数据库(还原数据库)
sp_attach_dbdbname='oooo',filename1='oooo.mdf',filename2='oooo.ldf'
6.判断是否有数据库
ifnotexists(select*fromsys.databaseswherename='MaterialStorage')
begin
end
7.判断是否有数据表
ifnotexists(select*fromsys.objectswherename='入库表')
begin
end
8.删除临时表
ifOBJECT_ID('tempdb..#ww2')isnotnull
begin
droptable#ww2
print'thetable#ww2hadbeendropped'
end
9.创建数据表(使用SQL软件中的代码生成功能)
BEGINTRANSACTION
SETQUOTED_IDENTIFIERON
SETARITHABORTON
SETNUMERIC_ROUNDABORTOFF
SETCONCAT_NULL_YIELDS_NULLON
SETANSI_NULLSON
SETANSI_PADDINGON
SETANSI_WARNINGSON
MIT
BEGINTRANSACTION
GO
CREATETABLEdbo.Table_2
(
IDnchar(10)NULL,
ID2nchar(10)NULL
)ON[PRIMARY]
GO
ALTERTABLEdbo.Table_2SET(LOCK_ESCALATION=TABLE)
GO
MIT
10.创建数据表(手动编写代码)
useNGData2016
CREATETABLEdbo.Table_2
(
IDnchar(10)NULL,
ID2nchar(10)NULL
)ON[PRIMARY]
11.创建联合主键
USENGData2016
CREATETABLEdbo.不良数据_原始数据
(
NG_IDfloat(53)NOTNULL,
NG_程序组varchar(50)NOTNULL,
NG_程序varchar(50)NOTNULL,
NG_日期varchar(50)NOTNULL,
NG_NLT文件varchar(50)NOTNULL,
constraintpk_aprimarykey(NG_程序,NG_NLT文件)
)
USENGData2016
CREATETABLEdbo.不良数据_原始数据
(
IDfloat(53)NOTNULLprimarykey,
线别varchar(50)NOTNULL,
机型varchar(50)NOTNULL,
版本varchar(50)NOTNULL,
BOMvarchar(50)NOTNULL,
PCBvarchar(50)NOTNULL,
板面varchar(50)NOTNULL,
是否误报varchar(50)NOTNULL,
CHIP_IC_PCB不良varchar(50)NOTNULL,
不良拼板varchar(50)NOTNULL,
不良位号varchar(50)NOTNULL,
不良描述varchar(50)NOTNULL,
不良时间datetimeNOTNULL,
录入时间datetimeNOTNULL,
是否试用物料varchar(50)NOTNULL,
试用物料位号varchar(50)NOTNULL,
试用物料位号varchar(50)NOTNULL,
试用物料位号varchar(50)NOTNULL,
试用物料位号varchar(50)NOTNULL,
试用物料位号varchar(50)NOTNULL,
使用程序varchar(50)NOTNULL,
不良图片存储位置varchar(50)NOTNULL
)ON[PRIMARY]
12.编辑前1000行
/******ScriptforSelectTopNRowsmandfromSSMS******/
SELECTTOP1000[ID]
[线别]
[机型]
[版本]
[BOM]
[PCB]
[板面]
[是否误报]
[CHIP_IC_PCB不良]
[不良拼板]
[不良位号]
[不良描述]
[不良时间]
[录入时间]
[是否试用物料]
[试用物料位号]
[试用物料位号]
[试用物料位号]
[试用物料位号]
[试用物料位号]
[使用程序]
[不良图片存储位置]
FROM[NGData2016].[dbo].[不良数据_原始数据]
13.修改表的数据类型
usemyday
altertablemyday.dbo.客户信息altercolumnsAlaryfloat
14.查询所有的数据库
selectnamefromsysdatabases
15.查询某数据库里所有的数据表(用户表)
usemyday
(
selectnamefromsysobjectswherextype='u'
)
16.查询某数据库里所有的数据表(系统表)
usemyday
(
selectnamefromsysobjectswherextype='s'
)
17.将另一个数据库的同类型数据表合并到该数据库的数据表中
insertintoNGData2016.dbo.机型版本信息_原始数据select*fromNGData2017.dbo.机型版本信息_原始数据
18.将不同数据库的同类型数据表合并到新的数据库的数据表中
insertintoNGData2016.dbo.机型版本信息_原始数据2select*fromNGData2016.dbo.机型版本信息_原始数据unionallselect*fromNGData2017.dbo.机型版本信息_原始数据
主键永远不重复的算法
selectNEWID()
19.当原表不存在时,将筛选的数据复制到新表
useMyday
select*intoMO3fromdbo.MO
20.当原表存在时,将筛选的数据复制到新表
--将筛选的数据插入到新表的全部的列中
useMyday
insertintodbo.MO2selectLine,Countfromdbo.MO
--将筛选的数据插入到新表的部分列中
useMyday
insertintodbo.MO2(Line)selectLinefromdbo.MO
21.将某一行置顶
SELECT*FROMNGData2016.dbo.不良数据_原始数据
WHERE是否误报=''
ORDERBYcasewhenNG_ID='3'then0else1end,NG_ID
22.统计函数
useNGData2016
select机型as机型,版本as版本,不良位号as不良位号,COUNT(机型)as数量fromNGData2016.dbo.不良数据_原始数据groupby机型,不良位号,版本,机型
23.强制参数化
execsys.sp_executesqlN'select*fromNGData2016.dbo.不良数据_原始数据whereNG_ID=1'
N'1bigint'
1=17
24.使用存储过程
USE[NGData2016]
GO
/******Object:
StoredProcedure[dbo].[testproc]ScriptDate:
09/01/201611:
45:
02******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROCEDURE[dbo].[testproc]
--Addtheparametersforthestoredprocedurehere
jingxingnvarchar(100),
banbenvarchar(100),
weihaovarchar(100)
AS
BEGIN
SETNOCOUNTON;
SELECT*
FROM[NGData2016].[dbo].[不良数据_原始数据]
where机型like'%'+jingxing+'%'and版本like'%'+banben+'%'and不良位号like'%'+weihao+'%'
END
exeGData2016.dbo.testprocjingxing='',banben='',weihao=''
25.使用ANSI_NULLSON/ANSI_NULLSOFF选择是否筛选空集
--PrintmessageandperformSELECTstatements.
PRINT'Testingdefaultsetting'
setANSI_NULLSoff
go
DECLAREvarnameint
selectvarname=1
SELECT*
FROMt1
WHEREa=varname
SELECT*
FROMt1
WHEREa<>varname
SELECT*
FROMt1
WHEREaISNULL
26.添加主键
usemyday
altertablemyday.dbo.客户信息addconstraintpk_bprimarykey(ID)
27.删除主键
usemyday
altertablemyday.dbo.客户信息dropconstraintpk_b
28.OBJECT_ID()函数,返回int,用于寻找表格
29.DB_ID()函数,返回int,用于寻找数据库
30.表中添加列
usemyday
altertabledbo.New_Customer
addID3intnull
31.表中删除列
usemyday
altertabledbo.New_Customer
dropcolumnID3
32.表中修改列的类型
usemyday
altertabledbo.New_Customer
altercolumnIDintnotnull
33.表中创建主键
usemyday
altertabledbo.NEW_Customer
addconstraintpk_aprimarykey(ID)
34.表中创建多个主键
usemyday
altertabledbo.NEW_Customer
addconstraintpk_aprimarykey(ID,NAME)
35.表中删除主键
usemyday
altertabledbo.NEW_Customer
dropconstraintpk_a
36.表中修改主键(线先删除主键,再创建主键)
usemyday
altertabledbo.NEW_Customer
dropconstraintpk_a
go
usemyday
altertabledbo.NEW_Customer
addconstraintpk_aprimarykey(ID)
37.表中创建检查约束(检查约束,如列中只能添加’女’,不能填写’男’,就用检查约束实现)
usemyday
altertabledbo.NEW_Customer
addconstraintcheck_acheck(ID2='1')
38.表中删除检查约束
usemyday
altertabledbo.NEW_Customer
dropconstraintcheck_a
39.表中修改检查约束(先删除检查约束,再修改检查约束)
40.表中创建默认约束
usemyday
altertabledbo.同学录
addconstraintdf_highschooldefault'西大附中'forHighSchool
41.表中删除默认约束
usemyday
altertabledbo.同学录
dropconstraintdf_highschool
42.表中创建外键约束(被引用的列需要是约束列)
usemyday
altertableNEW_Customer
addconstraintFkey_IDforeignkey(ID)referencesdbo.客户信息(ID)
43.创建架构mydbo
usemyday
go
createschemamydbo
44.修改表的架构
usemyday
alterschemamydbotransferdbo.客户信息
45.更改数据库名称(不建议使用,建议直接删除再重建数据库)
executesp_renamedbdbname='hello',newname='HelloWorld'
46.重命名数据表名称
useHelloWorld
executesp_renameobjname='Table_3',newname='Table_2',objtype='object'
47.重命名数据表的列名称
useHelloWorld
executesp_renameobjname='dbo.Table_3.ID',newname='ID3',objtype='column'
48.重命名索引
USEAdventureWorks;
GO
EXECsp_renameN'Purchasing.ProductVendor.IX_ProductVendor_VendorID',N'IX_VendorID',N'INDEX';
GO
49.重命名数据类型
USEAdventureWorks;
GO
EXECsp_renameN'Phone',N'Telephone',N'USERDATATYPE';
GO
50.运行作业
usemsdb
execsp_start_jobjob_name='schedule_test'
51.使用Output语句获取Delete、Update、Insert的行
USEmyday
GO
ifexists(select*fromdbo.客户信息)
deletefromdbo.客户信息
UPDATEdbo.客户信息
SETsAlary=9000
OUTPUT
inserted.*
INTO客户信息
FROMdbo.客户信息whereIDin('1','2')
SELECT*FROM客户信息
select*fromdbo.客户信息
GO
52.定义一个用户的表(需要先自定义一个表类型CreateType)
DECLARELocationTVP
ASLocationTableType;
53.执行字符串语句
declaretablenamevarchar(100)
settablename='不良数据_原始数据'
exec('select*fromdbo.'+tablename)
54.使用事务:
执行
useMyday
begintranUpdate_date
updatedbo.人员信息setName='邱健海'whereID=5
mittranUpdate_date
55.使用事务:
回滚
useMyday
begintranUpdate_date
updatedbo.人员信息setName='邱健海'whereID=5
rollbacktranUpdate_date
56.使用事务:
满足条件执行,不满足回滚
useMyday
begintranUpdate_date
updatedbo.人员信息setName='邱健海'whereID=3
ifERROR<>0
begin
rollbacktranUpdate_date
end
else
begin
mittranUpdate_date
end
57.创建视图
CREATEVIEW[dbo].[V_People]
AS
SELECTdbo.人员信息.Name,dbo.人员信息.School,dbo.人员信息.BsetLove
FROMdbo.人员信息,dbo.人员信息wheredbo.人员信息.Name=dbo.人员信息.Name
58.表A对比表B,选择表B没有的数据
useMyday
select*fromMOexcept(select*fromMO2unionselect*fromMO2)
59.表A对比表B,选择表AB都有的数据
useMyday
select*fromMOIntersect(select*fromMO2unionselect*fromMO2)
60.使用Raiserror发送消息或者错误
--发送消息,不产生报警
USE[Myday]
select*fromdbo.MO
raiserror('helloworld',10,1,N'abcde')
--发送错误,产出报警
USE[Myday]
select*fromdbo.MO
raiserror('helloworld',16,1,N'abcde')
61.使用视图关联两个表
USE[Myday]
CREATEVIEW[dbo].[View_1]
AS
SELECTdbo.MO2.ID,dbo.MO2.Line,dbo.MO2.Count,dbo.MO2_Info.LineInfo1,dbo.MO2_Info.LineInfo2,dbo.MO2_Info.LineInfo3
FROMdbo.MO2,dbo.MO2_Info
wheredbo.MO2.Line=dbo.MO2_Info.Line
62.使用视图合并两个结构一样的表
USE[Myday]
CREATEVIEW[dbo].[View_UnionMO23]
AS
SELECTdbo.MO2.ID,dbo.MO2.Line,dbo.MO2.Count
FROMdbo.MO2
unionall
selectdbo.MO3.ID,dbo.MO3.Line,dbo.MO3.Count
fromdbo.MO3
63.派生表
select*from(SelectLine,COUNTfromMO)ast
64.查找150行到170行的数据
useMyday
select*from
(selectROW_NUMBER()over(orderbylineasc)asnum,*fromdbo.MO)ast
wheret.numbetween150and170orderbyLineasc
65.E
66.E
67.E
68.E
69.E
70.E
71.E
72.E
73.E
74.E
75.E
76.E
77.e
78.Tt
79.Tt
80.ee
81.44
82.
83.444
84.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据库 语句