1.建立數據庫(create)sql
CREATE DATABASE database-name
2.刪除數據庫(drop)數據庫
drop database dbname
3.備份數據庫spa
--- 建立 備份數據的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 開始 備份 BACKUP DATABASE pubs TO testBack
4.建立新表code
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) --根據已有的表建立新表: A:create table tab_new like tab_old (使用舊錶建立新表) B:create table tab_new as select col1,col2… from tab_old definition only
5.刪除新表blog
1 drop table tabname
6.增長一個列(字段)排序
1 Alter table tabname add column col type 2 3 --注:列增長後將不能刪除。DB2中列加上後數據類型也不能改變,惟一能改變的是增長varchar類型的長度。
7.添加主鍵索引
1 Alter table tabname add primary key(col) 2 3 --說明:刪除主鍵: Alter table tabname drop primary key(col)
8.建立索引字符串
1 create [unique] index idxname on tabname(col….) 2 3 --刪除索引:drop index idxname 4 5 --注:索引是不可更改的,想更改必須刪除從新建。
9.建立視圖it
1 create view viewname as select statement 2 3 --刪除視圖:drop view viewname
10.幾個最簡單的SQL語句io
1 --選擇: 2 select * from table1 where 範圍 3 4 --插入: 5 insert into table1(field1,field2) values(value1,value2) 6 7 --刪除: 8 delete from table1 where 範圍 9 10 --更新: 11 update table1 set field1=value1 where 範圍 12 13 --查找: 14 select * from table1 where field1 like ’%value1%’ ---like的語法很精妙,查資料! 15 16 --排序: 17 select * from table1 order by field1[desc],field2[asc] --二次排序,當有重複值時按照主鍵排序 18 19 --總數: 20 select count as totalcount from table1 21 22 --求和: 23 select sum(field1) as sumvalue from table1 24 25 --平均: 26 select avg(field1) as avgvalue from table1 27 28 --最大: 29 select max(field1) as maxvalue from table1 30 31 最小:select min(field1) as minvalue from table1 32 33 --統計記錄條數 34 SELECT COUNT(*) FROM T_EMPLOYEE 35 36 --向下/向上取整 37 SELECT FLOOR(50.41) --50 38 SELECT CEILING(50.41) --51
使用通配符
通配符過濾關鍵詞:LIKE
--"%"爲匹配零個或多個任意字符,結果爲包含O的字符串 SELECT * FROM T_EMPLOYEE WHERE FNAME LIKE '%O%' --非O開頭但包含O的字符串 SELECT * FROM T_EMPLOYEE WHERE FNAME LIKE '[^O]%O%' --非O開頭和結尾但中間包含O的字符串 SELECT * FROM T_EMPLOYEE WHERE FNAME LIKE '[^O]%O%[^O]' --"_"爲匹配一個任意字符,結果爲先後匹配任意字符,單至少有一個O在中間 SELECT * FROM T_EMPLOYEE WHERE FNAME LIKE '_%O%_' --包含a-t之間的任意單個字母 SELECT * FROM T_EMPLOYEE WHERE FNAME LIKE '[a-t]'
空值處理:數據庫中,若是一個列沒有指定值,這個值就是NULL,可是這個NULL和C#中的NULL不一樣,數據庫中的NULL表明的是不知道,未定義的意思,而C#中的NULL表示爲空,例如Person h;就表示h爲空。
SQL語句查詢空值的語句爲
--空值查詢
SELECT * FROM T_EMPLOYEE WHERE FNAME IS NULL
多值查詢:IN,BETWEEN-AND
--IN相似於英文or,即根據IN中所包含的部分查詢 SELECT FNUM,FNAME,FAGE,FSALARY FROM T_Employee WHERE FAGE IN(50,20,25,30); --BETWEEN-AND用於查詢在其之間的部分,注意其爲大於等於 SELECT FNUM,FNAME,FAGE,FSALARY FROM T_Employee WHERE FAGE BETWEEN 20 AND 50; --BETWEEN不可用於字符的比較,可用>,<經過自動轉換爲ASCII碼比較 SELECT FNUM,FNAME,FAGE,FSALARY FROM T_Employee WHERE FTEST BEWTEEN 'A'AND 'G' SELECT FNUM,FNAME,FAGE,FSALARY FROM T_Employee WHERE FTEST>= 'A'AND FTEST<= 'G'
分組查詢:GROUP BY
--GROUP BY用於分組,兩個條件時經過兩個共同的進行分組 SELECT FTEST,COUNT(*) FROM T_EMPLOYEE GROUP BY FTEST SELECT FNAME,FTEST,COUNT(*) FROM T_EMPLOYEE GROUP BY FTEST,FNAME
分組後的查詢條件:HAVING
--分組以後的結果集的條件用HAVING,不用GROUP BY採用的條件是WHERE,但其條件必需要包含在結果集當中,如採用FAGE>30則不能夠 SELECT FNAME,FTEST,COUNT(*) as 數量 FROM T_EMPLOYEE GROUP BY FTEST,FNAME HAVING COUNT(*)>1
合併結果集:UNION (ALL)
--合併結果集,而且去除重複項 SELECT c_name from Category union select b_title from Book --合併結果集,不去除重複項 SELECT c_name from Category union all select b_title from Book
當查詢多個列時,去除重複項只能去除徹底相同的項,若一列相同,其餘列不一樣,則不算是重複,不會去除。
2018.08.13