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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sql数据库常见命令总结

發布時間:2025/3/20 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql数据库常见命令总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.sql功能
數據庫查詢? select
數據庫定義? create, drop,alter
數據庫操縱? insert, update,delete
數據庫控制? grant,revoke
--語句??????????????????????????????? 功 能

1、數據操作

Select????? --從數據庫表中檢索數據行和列

Insert????? --向數據庫表添加新數據行

Delete????? --從數據庫表中刪除數據行

Update????? --更新數據庫表中的數據

2、數據定義

Create TABLE??? --創建一個數據庫表

Drop TABLE???? --從數據庫中刪除表

Alter TABLE???? --修改數據庫表結構

Create VIEW???? --創建一個視圖

Drop VIEW???? --從數據庫中刪除視圖

Create INDEX??? --為數據庫表創建一個索引

Drop INDEX???? --從數據庫中刪除索引

Create PROCEDURE?? --創建一個存儲過程

Drop PROCEDURE??? --從數據庫中刪除存儲過程

Create TRIGGER??? --創建一個觸發器

Drop TRIGGER??? --從數據庫中刪除觸發器

Create SCHEMA??? --向數據庫添加一個新模式

Drop SCHEMA???? --從數據庫中刪除一個模式

Create DOMAIN??? --創建一個數據值域

Alter DOMAIN??? --改變域定義

Drop DOMAIN???? --從數據庫中刪除一個域

3、數據控制

GRANT????? --授予用戶訪問權限

DENY????? --拒絕用戶訪問

REVOKE????? --解除用戶訪問權限

4、事務控制

COMMIT????? --結束當前事務

ROLLBACK???? --中止當前事務

SET TRANSACTION??? --定義當前事務數據訪問特征

5、程序化SQL

DECLARE????? --為查詢設定游標

EXPLAN????? --為查詢描述數據訪問計劃

OPEN????? --檢索查詢結果打開一個游標

FETCH????? --檢索一行查詢結果

CLOSE????? --關閉游標

PREPARE????? --為動態執行準備SQL 語句

EXECUTE????? --動態地執行SQL 語句

DESCRIBE???? --描述準備好的查詢

6、局部變量

declare @id char(10)

--set @id = '10010001'

select @id = '10010001'

7、全局變量

---必須以@@開頭

8、IF 語句

declare @x int @y int @z int

select @x = 1 @y = 2 @z=3

if @x > @y

?print 'x > y' --打印字符串'x > y'

else if @y > @z

?print 'y > z'

else print 'z > y'

9、CASE 語句

use pangu

update employee

set e_wage =

?case

? when job_level = ’1’ then e_wage*1.08

? when job_level = ’2’ then e_wage*1.07

? when job_level = ’3’ then e_wage*1.06

? else e_wage*1.05

?end

10、WHILE CONTINUE BREAK 語句

declare @x int @y int @c int

select @x = 1 @y=1

while @x < 3

?begin

? print @x --打印變量x 的值

? while @y < 3

?? begin

??? select @c =100*@x+ @y

??? print @c --打印變量c 的值

??? select @y = @y + 1

?? end

? select @x = @x + 1

? select @y = 1

?end

11、WAITFOR語句

--例 等待1 小時2 分零3 秒后才執行Select 語句

waitfor delay ’01:02:03’

select * from employee

--例 等到晚上11 點零8 分后才執行Select 語句

waitfor time ’23:08:00’

select * from employee

?

12、Select語句

?? select *(列名) from table_name(表名) where column_name operator value

?? ex:(宿主)

? select * from stock_information where stockid?? = str(nid)

???? stockname = 'str_name'

???? stockname like '% find this %'

???? stockname like '[a-zA-Z]%' --------- ([]指定值的范圍)

???? stockname like '[^F-M]%'?? --------- (^排除指定范圍)

???? --------- 只能在使用like關鍵字的where子句中使用通配符)

???? or stockpath = 'stock_path'

???? or stocknumber < 1000

???? and stockindex = 24

???? not stocksex = 'man'

???? stocknumber between 20 and 100

???? stocknumber in(10,20,30)

???? order by stockid desc(asc) --------- 排序,desc-降序,asc-升序

???? order by 1,2 --------- by列號

???? stockname = (select stockname from stock_information? where stockid? = 4)

???? --------- 子查詢

???? --------- 除非能確保內層select只返回一個行的值,

???? --------- 否則應在外層where子句中用一個in限定符

? select distinct column_name form table_name --------- distinct指定檢索獨有的列值,不重復

? select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name

? select stockname , "stocknumber" = count(*) from table_name group by stockname

????????????????????????????????????? --------- group by 將表按行分組,指定列中有相同的值

????????? having count(*) = 2? ---------? having選定指定的組

??????

? select *

? from table1, table2????????????????

? where table1.id *= table2.id -------- 左外部連接,table1中有的而table2中沒有得以null表示

???? table1.id =* table2.id -------- 右外部連接

? select stockname from table1

? union [all]? -----? union合并查詢結果集,all-保留重復行

? select stockname from table2

13、insert 語句

? insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")

????????????? value (select Stockname , Stocknumber from Stock_table2)---value為select語句

14、update語句

? update table_name set Stockname = "xxx" [where Stockid = 3]

???????? Stockname = default

???????? Stockname = null

???????? Stocknumber = Stockname + 4

15、delete語句

? delete from table_name where Stockid = 3

? truncate table_name ----------- 刪除表中所有行,仍保持表的完整性

? drop table table_name --------------- 完全刪除表

?


定義表的屬性時要指明數據類型和長度。不同的數據庫系統支持的數據類型都不一樣,例如ibm,db2,sql主要支持

smallint 半字長二進制整數
integer or int? 全字長二進制整數
decimal(p[,q])或dec (p[,q])壓縮十進制數,共p位,其中小數點后有q 位 0<=q<=p<=15,q=0時可以省略
float 雙字節浮點數。
charter(n)或char(n)長度為n的定長字符串
varchar(n)最大長度為n的變長字符串
graphic(n)長度為n的變長圖形字符串
vargraphic(n)最大長度為n的變長圖形字符串
date 日期型,格式為yyyy-mm-dd.
time 時間型,格式為hh.mm.ss.xx
timestamp? 日期加時間

2.修改基本表

建立索引 CREATE (UNIQUE or CLUSTER )INDEX (索引名) ON 表名 列名 次序

CREATE UNIQUE INDEX stusno ON student(Sno);
刪除索引
DROP INDEX (索引名)
DROP INDEX stusno

刪除索引時,系統會同時從數據字典中刪除有關該索引的描述

3.查詢

單表查詢: SELECT Sno,Sname
?????????? FROM Student;


查詢全部列:
SELECT *
FROM Student;

SELECT Sname, 1995-sage
FROM Student;

4.查詢滿足條件的元組
WHERE子句可包括各種條件運算符:?

比較運算符(大小比較):>、>=、=、<、<=、<>、!>、!<?

 范圍運算符(表達式值是否在指定的范圍):BETWEEN...AND...?
 NOT BETWEEN...AND...?
?列表運算符(判斷表達式是否為列表中的指定項):IN (項1,項2......)?

?NOT IN (項1,項2......)?

  模式匹配符(判斷值是否與指定的字符通配格式相符):LIKE、NOT LIKE

  空值判斷符(判斷表達式是否為空):IS NULL、NOT IS NULL

  邏輯運算符(用于多條件的邏輯連接):NOT、AND、OR

?

范圍運算符例:age BETWEEN 10 AND 30相當于age>=10 AND age<=30?

 ?? 列表運算符例:country IN ('Germany','China')?

   模式匹配符例:常用于模糊查找,它判斷列值是否與指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等類型查詢。?

  可使用以下通配字符:?
?  百分號%:可匹配任意類型和長度的字符,如果是中文,請使用兩個百分號即%%。?

  下劃線_:匹配單個任意字符,它常用來限制表達式的字符長度。?

  方括號[]:指定一個字符、字符串或范圍,要求所匹配對象為它們中的任一個。[^]:其取值也[] 相同,但它要求所匹配對象為指定字符以外的任一個字符。?

  例如:?

?  限制以Publishing結尾,使用LIKE '%Publishing'

?  限制以A開頭:LIKE '[A]%'

?  限制以A開頭外:LIKE '[^A]%'

???

  空值判斷符例WHERE age IS NULL

???

  邏輯運算符:優先級為NOT、AND、OR

?

轉載于:https://blog.51cto.com/zh888/409965

總結

以上是生活随笔為你收集整理的sql数据库常见命令总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。