sql語句大全
sp_helpdb ----------查本服務器中所有數據庫 可跟庫名 例:sp_helpdb 庫名 ------------------------------------------------------------- sp_databases -------------查看本服務器中可用的數據庫 -------------------------------------------------------------------- sp_helpfile -------------------查看當前工作著的數據庫 ----------------------------------------------------------- sp_helpfilegroup ---------------查看當前工作著的組的信息。
可加參數,跟組名 例:sp_helpdb 庫名 ---------------------------------------------------------------- sp_renamedb -----------改數據庫名 例:sp_renamedb 舊庫名,新庫名 ---------------------------------------------------------------- select groupname from sysfilegroups where status=24 ---------查看文件組 =8是查只讀文件組 =16是查默認文件組 =24是查即只讀又默認 --------------------------------------------------------------------------- sp_dboption ----------修改數據庫選項值 例:sp_dboption 庫名 選項 值 值決定真假 一般用:true/faule 或off/on表示 選項一般常用為:use only(數據庫擁有者)single user(單一用戶)read only(只讀) -------------------------------------------------------------------------- dbcc shrinkdatabase ---------收縮數據庫 例:dbcc shrinkdatabase (庫名,10) 收縮庫,剩余空間保留10%,后面如果不加notruncate,則釋放空間操作系統, 加truncateonly,歸還空間給操作系統,但忽略所給的百分比數值。 ---------------------------------------------------------------------- dbcc shrinkfile ---------收縮文件 用法與ddcc shrinkdatabase相同。
---------------------------------------------------------------------- alter database ---------------修改數據庫 用法:這是起始句,告訴要做的是修改數據庫,然后再接要做什么工作。每次只做一項工作 alter database 庫名 add file 文件名。
.to filegroup 文件組名 ----------------增加庫文件,格式與建庫時括號里指定大小時的格式一樣 add log file 文件名 -------------增加日志文件 remove file 文件名 ---------刪除庫內的文件 add filegroup 文件組名 -----------增加一個文件組 modify file 文件名 -------------修改文件屬性 modify filegroup 組名 ------------修改文件組屬性 --------------------------------------------------------------------------- drop database --------------刪除數據庫 例:drop database 庫名1,庫名2 ---------可同時刪除兩個庫 ------------------------------------------------------------------------ create table 表名 (列名 類型, 列名 類型) -------------------建立表 -------------------------------------------------------------------- select * from 表名 ---------查詢表結構 -------------------------------------------------------------------- select @@dbts ----------查詢最后一次操作 -------------------------------------------------------------------- insert into 表名 (列名,列名) values (變量,變量。..) ------------向表中插入數據 如省略列名,則必須把每列的變量填全,不可缺少。
可以省略 into -------------------------------------------------------------------- sp_addtype 自定義類型名 系統類型名 -------用戶自定義類型 -------------------------------------------------------------------- sp_droptype 自定義類型名 -----------刪除自定義類型 如有數據庫正在使用該自定義類型,則不能刪除 -------------------------------------------------------------------- alter table ---------修改表結構 用法: alter table 表名 alter column 列名 類型 ---------修改列的類型 drop column 列名 --------刪除列 add (column) 列名 --------增加列,實際用時不加 column ----------------------------------------------------------------- sp_help -------------查看數據庫中對象信息 用法: sp_help 表名 ---------------查表的信息 或 sp_help 庫名 --------------查庫信息 后面可以跟庫名或者表名,是查數據庫或者表的信息 ----------------------------------------------------------------- sp_spaceused --------查看對象占用的空間信息 用法: sp_spaceused ----------查當前庫占用空間信息 或 sp_spaceused 表名 ----------查指定表占用空間信息 后面可以加表名查看表占空間信息。如不加,則查看當前數據庫。
------------------------------------------------------------------ sp_depends ------------查看對象的相關性 用法: sp_depends 表名 -----------后面加表名 ------------------------------------------------------------------ sp_rename ---------------重新命名 用法: sp_rename 舊表名,新表名 ---------改表名 或 sp_rename '表名.舊列名','新列名' 'column' -------修改列名 -------------------------------------------------------------------- create index --------------創建索引 用法: create index 索引名 on 表名 (列名) ------創建索引 或: create unique clustered index 索引名 on 表名 (列名) ------創建簇集唯一索引 unique是建唯一索引 clustered是建簇集索引 ---非簇集索引用:nonclustered ---------------------------------------------------------------------- select top ---------查表中前幾行 用法: select top 3 * from 表名 -------查表中前三行 或: select top 10 percent * from 表名 -------顯示表中前10%數據 ------------加入percent是百分比的意思。只以大于的最小整數,無小數 ---------------------------------------------------------------------- select 列名,列名,列名 from 表名 -------顯示表中特定的列 ---------------------------------------------------------------------- 。
SQL最基本的語句是哪些
掌握SQL四條最基本的數據操作語句:Insert,Select,Update和Delete。
練掌握SQL是數據庫用戶的寶貴財 富。在本文中,我們將引導你掌握四條最基本的數據操作語句?SQL的核心功能?來依次介紹比較操作符、選擇斷言以及三值邏輯。
當你完成這些學習后,顯然你已經開始算是精通SQL了。在我們開始之前,先使用CREATE TABLE語句來創建一個表(如圖1所示)。
DDL語句對數據庫對象如表、列和視進行定義。它們并不對表中的行進行處理,這是因為DDL語句并不處理數據庫中實際的數據。
這些工作由另一類SQL語句?數據操作語言(DML)語句進行處理。SQL中有四種基本的DML操作:INSERT,SELECT,UPDATE和DELETE。
由于這是大多數SQL用戶經常用到的,我們有必要在此對它們進行一一說明。在圖1中我們給出了一個名為EMPLOYEES的表。
其中的每一行對應一個特定的雇員記錄。請熟悉這張表,我們在后面的例子中將要用到它。
INSERT語句用戶可以用INSERT語句將一行記錄插入到指定的一個表中。例如,要將雇員John Smith的記錄插入到本例的表中,可以使用如下語句:INSERT INTO EMPLOYEES VALUES('Smith','John','1980-06-10','Los Angles',16,45000);通過這樣的INSERT語句,系統將試著將這些值填入到相應的列中。
這些列按照我們創建表時定義的順序排列。在本例中,第一個值“Smith”將填到第一個列LAST_NAME中;第二個值“John”將填到第二列FIRST_NAME中……以此類推。
我們說過系統會“試著”將值填入,除了執行規則之外它還要進行類型檢查。如果類型不符(如將一個字符串填入到類型為數字的列中),系統將拒絕這一次操作并返回一個錯誤信息。
如果SQL拒絕了你所填入的一列值,語句中其他各列的值也不會填入。這是因為SQL提供對事務的支持。
一次事務將數據庫從一種一致性轉移到另一種一致性。如果事務的某一部分失敗,則整個事務都會失敗,系統將會被恢復(或稱之為回退)到此事務之前的狀態。
回到原來的INSERT的例子,請注意所有的整形十進制數都不需要用單引號引起來,而字符串和日期類型的值都要用單引號來區別。為了增加可讀性而在數字間插入逗號將會引起錯誤。
記住,在SQL中逗號是元素的分隔符。同樣要注意輸入文字值時要使用單引號。
雙引號用來封裝限界標識符。對于日期類型,我們必須使用SQL標準日期格式(yyyy-mm-dd),但是在系統中可以進行定義,以接受其他的格式。
當然,2000年臨近,請你最好還是使用四位來表示年份。既然你已經理解了INSERT語句是怎樣工作的了,讓我們轉到EMPLOYEES表中的其他部分:INSERT INTO EMPLOYEES VALUES('Bunyan','Paul','1970-07-04','Boston',12,70000);INSERT INTO EMPLOYEES VALUES('John','Adams','1992-01-21','Boston',20,100000);INSERT INTO EMPLOYEES VALUES('Smith','Pocahontas','1976-04-06','Los Angles',12,100000);INSERT INTO EMPLOYEES VALUES('Smith','Bessie','1940-05-02','Boston',5,200000);INSERT INTO EMPLOYEES VALUES('Jones','Davy','1970-10-10','Boston',8,45000);INSERT INTO EMPLOYEES VALUES('Jones','Indiana','1992-02-01','Chicago',NULL,NULL);在最后一項中,我們不知道Jones先生的工薪級別和年薪,所以我們輸入NULL(不要引號)。
NULL是SQL中的一種特殊情況,我們以后將進行詳細的討論。現在我們只需認為NULL表示一種未知的值。
有時,像我們剛才所討論的情況,我們可能希望對某一些而不是全部的列進行賦值。除了對要省略的列輸入NULL外,還可以采用另外一種INSERT語句,如下:INSERT INTO EMPLOYEES(FIRST_NAME, LAST_NAME,HIRE_DATE, BRANCH_OFFICE)VALUE('Indiana','Jones','1992-02-01','Indianapolis');這樣,我們先在表名之后列出一系列列名。
未列出的列中將自動填入缺省值,如果沒有設置缺省值則填入NULL。請注意我們改變了列的順序,而值的順序要對應新的列的順序。
如果該語句中省略了FIRST_NAME和LAST_NAME項(這兩項規定不能為空),SQL操作將失敗。讓我們來看一看上述INSERT語句的語法圖:INSERT INTO table[(column { ,column})]VALUES(columnvalue [{,columnvalue}]);和前一篇文章中一樣,我們用方括號來表示可選項,大括號表示可以重復任意次數的項(不能在實際的SQL語句中使用這些特殊字符)。
VALUE子句和可選的列名列表中必須使用圓括號。SELECT語句SELECT語句可以從一個或多個表中選取特定的行和列。
因為查詢和檢索數據是數據庫管理中最重要的功能,所以SELECT語句在SQL中是工作量最大的部分。實際上,僅僅是訪問數據庫來分析數據并生成報表的人可以對其他SQL語句一竅不通。
SELECT語句的結果通常是生成另外一個表。在執行過程中系統根據用戶的標準從數據庫中選出匹配的行和列,并將結果放到臨時的表中。
在直接SQL(direct SQL)中,它將結果顯示在終端的顯示屏上,或者將結果送到打印機或文件中。也可以結合其他SQL語句來將結果放到一個已知名稱的表中。
SELECT語句功能。
SQL語句中CASE有哪些用法
在寫SQL語句時,或者是在PL/SQL中,經常需要在一個SQL語句中,根據不同的條件,有多種處理方法,如簡單例子:出售一種商品時,單價不同,折扣不同,對這種需求的處理,如果分情況處理,將會很麻煩,如果用Case語句,就可以在一條SQL語句中得到想要的結果。
首先看一下,Case的語法: case when 條件A Then 結果A When 條件B 結果B 。
else 結果N end 和Decode 不同的是,Decode 只能針對固定的值,而 Case 可以用不是固定值,需是一個條件。 現在有以下的需求,有一個字符串,最后的兩位可能是 '/R' ,'/T' 另外,有的后兩位沒有前面的'/R' ,'/T' ,現在針對不同的需要,要將 '/R' ,'/T' 取掉,沒有 '/R' ,'/T', 就不做處理。
具體字符串如下: A01JCL-A01JCL/GF117F0001TR/R SQL寫法可以如下: select (case when instr(code, '/R') > 0 then substr(code, 1, instr(code, '/R') - 1) when instr(code, '/T') > 0 then substr(code, 1, instr(code, '/T') - 1) else '0' end) from table_A t ; 使用Case時,要用括號括起來。
誰有最常用SQL語句大全
select語句:[()表示空格 以下表的名稱以 表1 為例] 1,select * from 表的名稱[表1] 意思是:從表1中查詢它的全部內容。
其中:*表示全部內容。如果不查詢表1中的全部內容,那么查詢什么就把什么發在*的位置上。
例如: select name from 表1 其中的name就是要查詢的一項內容。 如果要查詢的內容是多項那么用逗號隔開,例如: select name,age from 表1 2,select top 一個數字 * from 表1 意思是:從表1中查詢前 X 項的全部內容。
*可以用表1中的內容表示。意思是:從表1中查詢前 X 項某一項的內容。
而不是全部內容。 3,select * from 表1 where 表中某一項滿足的條件。
例如: Select * from 表1 where submit_date<#2003-11-1#意思是: 從表1中查詢滿足sumit_date在2003-11-1之前的全部內容。 select * from 表1 where 表中某一項滿足的條件 and 另一項內容滿足的條件。
例如: Select * from 表1 where submit_date<#2003-11-1# and real_name=“建波” 。意思是: 從表1中查詢滿足sumit_date在2003-11-1之前和real_name="建波"的全部內容 4,select * from 表1 where 表1中某一項滿足的條件 like "*關鍵字*"。
例如: select * form 表1 where real_name like "*勇*"。意思是: 從表1中查詢real_name中有 關鍵字 “勇”的全部內容。
5,select * from 表1 order by order 某一項內容 升降順序。例如: Select * from 表1 order by real_name asc 升序排列 Select * from 表1 order by real_name desc 降序排列 意思是 從表1中按照 real_name 的升降順序查詢 6,Select * from 表1 order by real_name desc,submit_date asc 如果有按多個字段排序,中間用逗號隔開 7,查詢滿足條件的記錄的總數 select count (*) as total from 表1 where 某一項內容滿足的條件 (計數) (總數) Select count (*) as total from 表1 where submit_date<#2003-11-1#。
意思是: 從表1中查詢滿足sumit_date在2003-11-1之前的總數 8,select sum (某一項) as total 某一項,average(某一項) as average 某一項 from 表1 group by class。例如: Select sum (grade) as total_grade,average(grade) as average_grade from 表1 group by class。
意思是: 從表1中查詢這個班 grade 的總數 和 這個班 grade 的平均數 Insert語句 主要的功能是向數據庫添加新的信息 語法是:insert into 表1 (字段1,字段2,……) value (字段1德值,字段2的值,……) 例如: (1)插入user_name字段: Insert into users(user_name)values("wuyuanzhi") (2)只插入user_name和real_name字段 Insert into users (user_name,real_name) values("yuanzhi","遠志") 說明:user_name 是主鍵,必須插入值,而且還不能跟原來的用戶名 重復。 (3)只插入user_name 和 submit_date 字段 insert into users (user_name,submit_date) value ("yuanzhi",#2007-01-01#) (4)假如在users表中增加一個年齡字段age,為數字類型,則為:insert into users (user_name,age) value ("yuanzhi",23) (5)在users表中增加一條完整的記錄: insert into users (user_name,password,real_name,tel,email,submit-date) value("yuanzhi","2468912340","遠 志","15001016610","wuyuanzhi226@*",#2007-01-02#) Delete 語句 作用是:可以刪去表中無用德記錄 語法:delete from 表1 [where 條件] 說明:1,where 條件與select中的用法是一樣的,凡是符合條件的記錄都會被刪除,如果沒有符合條件的記錄則不刪除. 2,如果省略where條件,將刪除所有數據。
下面是常用的例子: (1)刪除user_name為"yuanzhi"的用戶 delete from 表1 where user_name="yuanzhi" (2)刪除2003年1月1日前注冊,并real_name為 "李亞" 的用戶 Delete from 表1 where submit_date<#2003-01-01# and real_name="李亞" (3)刪除表中所有的數據 Delete from 表1 Update 語句 在實際生活中,數據信息在不斷變化,例如用戶表中,電話可能會經常變化,在這個時候就可以使用update語句來實現更新數據的功能。 語法:update 數據庫名 set 字段1=字段值1,字段2=字段2,……[where 條件] 例如(1)修改user_name為 "yuanzhi" 的用戶的電話和e-mail地址。
update 表1 set tel="15001016610",e-mail="wuyuanzhi226@*" where user_name="yuanzhi" (2)將所有2003年一月一日前注冊日期統一更改為2003年一月一日。 update users set submit_date=#2003-01-01# where submit_date<#2003-01-01# (3)假如有年齡字段age,將所有的人的年齡增加10歲 update 表1 set age=age+10。
sql語句例題
* table S S# char(10),Sname char(20),age integer,sex char(20)
* into S(S#,Sname,age,sex) values('20070101','Li Lin',20,'女')
* C#,Cname from C where Teacher='zhang'
* S#,Sname from S where age>23 and sex='男'
* S# from S inner join SC on S.S#=SC.S# inner join C on SC.C#=C.C# and *r='Liu'
sql語句
(select count(*) from
emp where deptno = * and
sal > *) 這里的意思是找出deptno = ?和 sal>;?的所有記錄數*和*是外層查詢的當前行的結果。這里的意思是,與當前遍歷的行的deptno相同,且當前行的sal是最小的行數。然后返回這個count,如果<=1,則返回這一行到查詢結果。也就是,這里需要找到emp里,同一部門sal最大的行