SQL常用語句

2022-05-07 15:42:10 字數 3502 閱讀 3393

-sql常用命令

--資料的增刪改查

--增加資料(插入資料)

insert into [表名]([字段],[字段]..) values(值,值,值..) --按需要字段填寫

insert into [表名] values(值,值,值..) --插入全部字段,自動增長列不寫

--刪除資料(記得有外來鍵先刪除主鍵表裡的相應內容)

--刪除表裡的內容

delete from [表名]

--要是想刪某一行就加where條件

delete from [表名] where [字段]=值

--修改資料(更新資料)

--修改整個表內的資料

update [表名] set [字段]=值

--要是想修改某一行就加where條件

update [表名] set [欄位1]=值1 where [欄位2]=值2

--查詢

select [字段],[字段] from [表名]

--條件查詢

select [字段],[字段] from [表名] where [字段]=值

--公升降序(一般加在查詢語句末尾)

--公升序(預設)

order by [字段] asc

--降序

order by [字段] desc

--例子

select [字段],[字段] from [表名] order by [字段] desc

--設定使用的資料庫

use [資料庫名]

--建立命令

--建立資料庫

create database [資料庫名]

on(--資料庫資訊

name='aaa', --邏輯名稱aaa

filename='d:\bbb.mdf', --物理名稱bbb(寫全路徑)

size=5mb, --資料庫初始大小

maxsize=100mb, --增長的最大值

filegrowth=15%, --增長率

)log on

(--日誌資訊

name='aaa', --邏輯名稱aaa

filename='d:\bbb.ldf', --物理名稱bbb(寫全路徑)

size=2mb, --資料庫初始大小

filegrowth=1mb, --增長率

)--建立表

create table [表名]

(--[字段] [資料型別] [列的特徵],

id int identity(1,1) not null,--identity(1,1) 是自動增長(起始值,遞增值) ,not null 是不許為空(預設允許為空)

name varchar(20) not null,

)--給表新增約束

alter table [表名]

add constraint [約束名]

--新增主鍵(pk) primary key([欄位名])

--唯一約束(uq) unique ([欄位名])

--預設約束(df) default('預設文字') for [欄位名]

--檢查約束(ck) check([欄位名] between 15 and 40) --填寫的數字在15-40之間

--外來鍵約束(fk) foreign key([欄位名]) references [表名]([欄位名])

--刪除資料庫

--exists檢查是否存在

if exists(select * from sysdatabases where name = '[要刪除的資料庫名]')

drop database [要刪除的資料庫名]

if exists(select * from sysobjects where name = '[要刪除的儲存過程名]')

drop database [要刪除的儲存過程名]

--變數的使用 (宣告和使用要一起進行不然會找不到變數)

declare @[變數名] [資料型別]

--如 declare @name varchar(8)

declare @age int

--變數賦值

set @name =值

select @name =值

--例子

--查詢資訊 查詢張三的資訊

declare @name varchar(8)

set @name = '張三'

select * from [表名] where [字段] = @name

--賦值查詢 查詢與張三同齡的人

declare @name varchar(8)

declare @age int

set @name = '張三'

select @age = [字段] from [表名] where [字段]=@name

select * from [表名] where [字段]=@age

--全域性變數 (兩個@)

@@error  最後乙個t-sql錯誤的錯誤號

@@identity 最後一次插入的標識值

@@rowcount 上乙個sql語句影響行數

--事務

--開始

begin transaction

--提交

commit transaction

--回滾

rollback transaction

--例子

begin transaction

declare @errorsum int --紀錄錯誤

@errorsum = 0    --初始化沒有錯誤

--sql語句

set @errorsum=@errorsum+@@error --累計是否出錯

--sql語句

set @errorsum=@errorsum+@@error

--sql語句

set @errorsum=@errorsum+@@error

if @errorsum <>0 --如果有錯

begin

rollback transaction

endelse

begin

commit transaction

endgo

--儲存過程

--建立

create procedure [儲存過程名]

asdeclare @xx int ,

declare @yy varchar(8) output (帶有output為輸出引數,否則視為輸入引數)

--sql語句

--sql語句

--sql語句

select @yy=值 ...

go--呼叫儲存過程

--無引數

exec [儲存過程名]  

--有引數(順序不能變,變數在儲存過程內部的值為預設值)

exec [儲存過程名] @xx=[引數],@yy=[引數]

--有輸出參

declare @yy varchar(8)

exec [儲存過程名] 值,@yy output

sql常用語句

use myoa select from delete from department where departmentid 1 insert department departmentid,departmentname values 1,技術部 update department set depa...

sql常用語句

在sqlserver,簡單的組合sp spaceused和sp msforeachtable這兩個儲存過程,可以方便的統計出使用者 資料表的大小,包括記錄總數和空間占用情況,非常實用,在sqlserver2k和sqlserver2005中都測試通過。1.exec sp spaceused 表名 sq...

sql常用語句

第一種 行列互換思想,外層group by,使用case when then 我有乙個表,有兩個字段 收費專案 唯一值 收費金額。我想用sql按收費專案不同生成不同的字段,對應值是金額。如 房租 100 水電費 50 雜費 50 生成後的格式是 房租 水電費 雜費 100 50 50 請問,如何寫這...