日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SQl常用语句总结(持续更新……)

發(fā)布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQl常用语句总结(持续更新……) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

創(chuàng)建示例數(shù)據(jù)庫

USE master;

GO

IF DB_ID (N'mytest') IS NOT NULL

DROP DATABASE mytest;

GO

CREATE DATABASE mytest;

GO

USE mytest;

GO

IF OBJECT_ID(N'dbo.Orders') IS NOT NULL

DROP TABLE dbo.Orders;

GO

CREATE TABLE dbo.Orders

(

ProductID INT NOT NULL,

MadeFrom CHAR(20),

Sales MONEY NOT NULL

);


刪除數(shù)據(jù)庫

use master -- 設(shè)置當前數(shù)據(jù)庫為master,以便訪問sysdatabases表

go

if exists(select * from sysdatabases where name='stuDB')

drop database stuDB

go

或者

IF DB_ID (N'mytest') IS NOT NULL

DROP DATABASE mytest;


創(chuàng)建數(shù)據(jù)表

標準語法

CREATE TABLE table_name(

column1 datatype,

column2 datatype,

column3 datatype,

.....

columnN datatype,

PRIMARY KEY( one or more columns )

);

示例

CREATE TABLE CUSTOMERS(

ID? INT? ? ? ? ? ? ? NOT NULL,

NAME VARCHAR (20)? ? NOT NULL,

AGE? INT? ? ? ? ? ? ? NOT NULL,

ADDRESS? CHAR (25) ,

SALARY? DECIMAL (18, 2),

PRIMARY KEY (ID)

);


刪除表包含結(jié)構(gòu)

Drop table tablename

視圖


create view? 視圖名字

as

查詢代碼

demo:

create view? view_user

as

select id from user

go

/*以上為創(chuàng)建一個視圖,視圖里面存儲的是user表的ID列*/

/*刪除視圖*/

if exusts(select * from sysobjects where name='視圖名字')/*如果數(shù)據(jù)庫中存在這個視圖,就刪除該視圖,查不查詢隨便你*/

drop view 視圖名字? /*執(zhí)行刪除視圖語法*/

復制代碼

視圖注意事項:注意事項:

1.一個視圖可以嵌套另一個視圖,但最后不要超過3層

2.視圖定義中的select語句不能包括下列內(nèi)容

*order by排序子句,除非在select語句中帶有一個top子句

*into關(guān)鍵字

*引用臨時表或表變量

存儲過程

存儲過程可以說是一個記錄集吧,它是由一些T-SQL語句組成的代碼塊,這些T-SQL語句代碼像一個方法一樣實現(xiàn)一些功能(對單表或多表的增刪改查),然后再給這個代碼塊取一個名字,在用到這個功能的時候調(diào)用他就行了。

存儲過程的好處:

1.由于數(shù)據(jù)庫執(zhí)行動作時,是先編譯后執(zhí)行的。然而存儲過程是一個編譯過的代碼塊,所以執(zhí)行效率要比T-SQL語句高。

2.一個存儲過程在程序在網(wǎng)絡(luò)中交互時可以替代大堆的T-SQL語句,所以也能降低網(wǎng)絡(luò)的通信量,提高通信速率。

3.通過存儲過程能夠使沒有權(quán)限的用戶在控制之下間接地存取數(shù)據(jù)庫,從而確保數(shù)據(jù)的安全。

示例:

復制代碼

--查詢存儲過程

IF OBJECT_ID (N'PROC_SELECT_STUDENTS_COUNT', N'P') IS NOT NULL

DROP procedure PROC_SELECT_STUDENTS_COUNT;

GO

CREATE procedure PROC_SELECT_STUDENTS_COUNT

AS

SELECT COUNT(ID) FROM Students

GO

--執(zhí)行

EXEC PROC_SELECT_STUDENTS_COUNT

復制代碼

帶參數(shù)

復制代碼

--查詢存儲過程,根據(jù)城市查詢總數(shù)

IF OBJECT_ID (N'PROC_SELECT_STUDENTS_BY_CITY_COUNT', N'P') IS NOT NULL

DROP procedure PROC_SELECT_STUDENTS_BY_CITY_COUNT;

GO

CREATE procedure PROC_SELECT_STUDENTS_BY_CITY_COUNT(@city nvarchar(50))

AS

SELECT COUNT(ID) FROM Students WHERE City=@city

GO

-- 執(zhí)行

EXEC PROC_SELECT_STUDENTS_BY_CITY_COUNT N'Beijing'

復制代碼

帶通配符

復制代碼

--3、查詢姓氏為李的學生信息,含通配符

IF OBJECT_ID (N'PROC_SELECT_STUDENTS_BY_SURNNAME', N'P') IS NOT NULL

DROP procedure PROC_SELECT_STUDENTS_BY_SURNNAME;

GO

CREATE procedure PROC_SELECT_STUDENTS_BY_SURNNAME

@surnName nvarchar(20)='李%' --默認值

AS

SELECT ID,Name,Age FROM Students WHERE Name like @surnName

GO

--執(zhí)行

EXEC PROC_SELECT_STUDENTS_BY_SURNNAME

EXEC PROC_SELECT_STUDENTS_BY_SURNNAME N'李%'

EXEC PROC_SELECT_STUDENTS_BY_SURNNAME N'%李%'

復制代碼

帶輸出參數(shù)

復制代碼

--根據(jù)姓名查詢的學生信息,返回學生的城市及年齡

IF OBJECT_ID (N'PROC_SELECT_STUDENTS_BY_NAME', N'P') IS NOT NULL

DROP procedure PROC_SELECT_STUDENTS_BY_NAME;

GO

CREATE procedure PROC_SELECT_STUDENTS_BY_NAME

@name nvarchar(50),? ? --輸入?yún)?shù)

@city nvarchar(20) out, --輸出參數(shù)

@age? int output? ? ? ? --輸入輸出參數(shù)

AS

SELECT @city=City,@age=Age FROM Students WHERE Name=@name AND Age=@age

GO

--執(zhí)行

declare @name nvarchar(50),

@city nvarchar(20),

@age int;

set @name = N'李明';

set @age = 20;

exec PROC_SELECT_STUDENTS_BY_NAME @name,@city out, @age output;

select @city, @age;

復制代碼

存儲過程實現(xiàn)增刪改

1、新增demo

復制代碼

--1、存儲過程:新增學生信息

IF OBJECT_ID (N'PROC_INSERT_STUDENT', N'P') IS NOT NULL

DROP procedure PROC_INSERT_STUDENT;

GO

CREATE procedure PROC_INSERT_STUDENT

@id int,

@name nvarchar(20),

@age int,

@city nvarchar(20)

AS

INSERT INTO Students(ID,Name,Age,City) VALUES(@id,@name,@age,@city)

GO

--執(zhí)行

EXEC PROC_INSERT_STUDENT 1001,N'張三',19,'ShangHai'

復制代碼

2、修改

復制代碼

--修改學生信息

IF OBJECT_ID (N'PROC_UPDATE_STUDENT', N'P') IS NOT NULL

DROP procedure PROC_UPDATE_STUDENT;

GO

CREATE procedure PROC_UPDATE_STUDENT

@id int,

@name nvarchar(20),

@age int,

@city nvarchar(20)

AS

UPDATE Students SET Name=@name,Age=@age,City=@city WHERE ID=@id

GO

--執(zhí)行

EXEC PROC_UPDATE_STUDENT 1001,N'張思',20,'ShangHai'

復制代碼

3、刪除

復制代碼

--根據(jù)id刪除記錄

IF OBJECT_ID (N'PROC_DELETE_STUDENT_BY_ID', N'P') IS NOT NULL

DROP procedure PROC_DELETE_STUDENT_BY_ID;

GO

CREATE procedure PROC_DELETE_STUDENT_BY_ID

@id int

AS

DELETE FROM? Students WHERE ID=@id

GO

--執(zhí)行

EXEC PROC_DELETE_STUDENT_BY_ID 1001

復制代碼

存儲過程實現(xiàn)分頁

復制代碼

-- ROW_NUMBER分頁查詢

IF OBJECT_ID (N'PROC_SELECT_BY_PAGE', N'P') IS NOT NULL

DROP procedure PROC_SELECT_BY_PAGE;

GO

CREATE procedure PROC_SELECT_BY_PAGE

@startIndex int,

@endIndex int

AS

SELECT? * FROM (SELECT ID,Name,Age,City,ROW_NUMBER() OVER(ORDER BY ID DESC) AS RowNumber FROM Students) AS Temp

WHERE Temp.RowNumber BETWEEN @startIndex AND @endIndex

GO

--執(zhí)行

EXEC PROC_SELECT_BY_PAGE 1,10

--使用TOP分頁

IF OBJECT_ID (N'PROC_SELECT_BY_PAGE_WITH_TOP', N'P') IS NOT NULL

DROP procedure PROC_SELECT_BY_PAGE_WITH_TOP;

GO

CREATE procedure PROC_SELECT_BY_PAGE_WITH_TOP

@pageIndex int,

@pageSize int

AS

SELECT TOP(@pageSize) * FROM Students

WHERE ID >=(SELECT MAX(ID) FROM (SELECT TOP(@pageSize*(@pageIndex-1) + 1) ID FROM Students ORDER BY ID) AS Temp)

GO

--執(zhí)行

EXEC PROC_SELECT_BY_PAGE_WITH_TOP 1,2

我的博客文章地址:http://www.cnblogs.com/hgmyz/p/6755162.html

歡迎關(guān)注我的微信公眾號:互聯(lián)網(wǎng)碎片搜集

總結(jié)

以上是生活随笔為你收集整理的SQl常用语句总结(持续更新……)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。