(轉)新手C#SQL語句的學習2018.08.13

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

相關文章
相關標籤/搜索