工作經常使用的SQL整理,實戰篇(一)

工作經常使用的SQL整理,實戰篇(一)
原文:工作經常使用的SQL整理,實戰篇(一)

工作經常使用的SQL整理,實戰篇,地址一覽:

  工作經常使用的SQL整理,實戰篇(一)

  工作經常使用的SQL整理,實戰篇(二)

  工作經常使用的SQL整理,實戰篇(三)

?

目錄概覽:

1.數據庫

2.表

3.臨時表

4.索引和約束

5.范式

6.增刪改查

7.連接

8.分組和排序

9.通配符

10.視圖

11.存儲過程和事務

12.游標

13.觸發器

14.作業

?

  自己親手編寫的一些常用的SQL,希望對大家有用喔,廢話不多說了,直接入正題~

1.數據庫

  創建數據庫

  use masterif exists(select * from sysdatabases where name = 'OrderDB')drop database OrderDBcreate database OrderDBon(name='OrderDB_data',filename = 'D:\DB\OrderDB_data.mdf',size=10,filegrowth=15%)log on(name='OrderDB_log',filename='D:\DB\OrderDB_log.ldf',size=3,filegrowth=10%)

  刪除數據庫

  drop database OrderDB

2.表

創建表

  --用戶表  
  if exists (select * from sysobjects where name = 'Tse_User')drop table Tse_UserCreate table Tse_User(ID int identity(1,1),UserID int not null,UserName varchar(64) not null,RealName varchar(64) null,PRIMARY KEY (UserID))

?

  --產品表if exists (select * from sysobjects where name = 'Tse_Product')drop table Tse_ProductCreate table Tse_Product(ID INT IDENTITY(1,1),ProductID varchar(64) not null,ProductName varchar(256) not null,Price float not null,Storage int not null,      --庫存PRIMARY KEY(ProductID))

?

  --訂單表if exists (select * from sysobjects where name = 'Tse_Order')drop table Tse_OrderCreate table Tse_Order(ID int identity(1,1),OrderID varchar(64) not null,UserID int not null,ProductID varchar(64) not null,Number int not null,             --購買數量PostTime datetime not null,PRIMARY KEY(OrderID),FOREIGN KEY (UserID) REFERENCES Tse_User(UserID),FOREIGN KEY (ProductID) REFERENCES Tse_Product(ProductID))

  刪除表

  drop table Tse_User

  清空表

truncate?table?Tse_User????清除表中所有數據,下次插入編號從1開始

delete?from?Tse_User??????清除表中所有數據,但下次插入編號從原有編號+1開始

3.臨時表

生成臨時表,插入數據,將員工姓名全部打印出來

  use mastergocreate table #Employee(ID int identity(1,1),Name varchar(64) not null,primary key (ID))insert into #Employee(Name) values('zhangsan')insert into #Employee(Name) values('lisi')insert into #Employee(Name) values('wangwu')insert into #Employee(Name) values('tony')insert into #Employee(Name) values('mike')declare @i int declare @Name varchar(64)declare @Count intdeclare @Str nvarchar(4000)set @i = 0select @Count = COUNT(0) from #Employeewhile(@i < @Count)beginset @Str = 'select top 1 @Name = Name from #Employee where id not in (select top '+STR(@i) +'id from #Employee)'exec sp_executesql @Str ,N'@Name varchar(64) output', @Name outputselect @Name, @iset @i = @i + 1End

  查看表結構及表附加屬性
  SP_HELP Tse_User

4.索引和約束

聚集索引確定表中數據的物理順序。聚集索引類似于電話簿,后者按姓氏排列數據。由于聚集索引規定數據在表中的物理存儲順序,因此一個表只能包含一個聚集索引。但該索引可以包含多個列(組合索引),就像電話簿按姓氏和名字進行組織一樣。

非聚集索引,該索引中索引的邏輯順序與磁盤上行的物理存儲順序不同。一個表可以創建多個非聚集索引。

創建聚集索引

CREATE?UNIQUE?CLUSTERED?INDEX?[PK_Tse_ID]?ON?[dbo].[Tse_User]?

(??--唯一聚集索引

[ID]?ASC

)WITH?(PAD_INDEX??=?OFF,?STATISTICS_NORECOMPUTE??=?OFF,?SORT_IN_TEMPDB?=?OFF,?IGNORE_DUP_KEY?=?OFF,?DROP_EXISTING?=?OFF,

?ONLINE?=?OFF,ALLOW_ROW_LOCKS??=?ON,?ALLOW_PAGE_LOCKS??=?ON)?ON?[PRIMARY]

GO

?

創建非聚集索引

CREATE?UNIQUE?NONCLUSTERED?INDEX?[IX_Tse_UserID]?ON?[dbo].[Tse_User]?

(??--唯一非聚集索引

[UserID]?ASC

)WITH?(PAD_INDEX??=?OFF,?STATISTICS_NORECOMPUTE??=?OFF,?SORT_IN_TEMPDB?=?OFF,?IGNORE_DUP_KEY?=?OFF,?DROP_EXISTING?=?OFF,?

ONLINE?=?OFF,?ALLOW_ROW_LOCKS??=?ON,?ALLOW_PAGE_LOCKS??=?ON)?ON?[PRIMARY]

GO

?

約束

alter?table?Tse_User

add?constraint?CS_UserName?check?(len(Username)?>?3),

constraint?CS_Email?check?(charindex('@',?Email)?>?0)

5.范式

  第一范式1NF

  第一范式需滿足兩個條件:

  1)每個數據行必須包含具有原子性(即不可再分)的值;

  2)每個數據行必須包含一個獨一無二的值,即主鍵。

  舉例:假如客戶表中存在地址列,如果經常需要按城市歸類,那么,應該地址列拆分為省份,城市,縣,街道地址等列。

?

  第二范式2NF

  第二范式需要確保數據庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯合主鍵而言)。也就是說在一個數據庫表中,一個表中只能保存一種    數據,不可以把多種數據保存在同一張數據庫表中。

  舉例:比如常用的選課表中,以學號和課程號為聯合主鍵,不能將課程名,學分等課程相關信息寫入選課表,因為他們只與主鍵的一部分(課程號)相關。

?

  第三范式3NF

  第三范式需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。

  舉例:訂單表中以訂單號為主鍵,用戶真實姓名和郵箱等信息與用戶有關,與訂單沒有直接關系,因此,用戶真實姓名和郵箱等不能放到訂單表中。

  

  由于時間關系,余下的幾個問題在下一篇中討論,謝謝關注~,下一篇地址為:工作經常使用的SQL整理,實戰篇(二)

  如果您有什么問題,歡迎在下面評論,我們一起討論,謝謝~

  如果您覺得還不錯,不妨點下右下方的推薦,有您的鼓勵我會繼續努力的~

?

?

?

?

?

posted on 2014-03-08 14:41 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/p/3587892.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/377274.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377274.shtml
英文地址,請注明出處:http://en.pswp.cn/news/377274.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

XPth和XSLT的一些簡單用法

&#xff08;目的在于讓大家知道有這個東西的存在&#xff09; XPath:即XML Path語言(Xpath)表達式使用路徑表示法(像在URL中使用一樣)來為XML文檔的各部分尋址&#xff01; 關于XPath如何使用了&#xff0c;我們來看看&#xff01;當然這里面的代碼只是入門&#xff0c;更深層…

isc dhcp_ISC的完整形式是什么?

isc dhcpISC&#xff1a;印度學校證書 (ISC: Indian School Certificate) ISC is an abbreviation of the Indian School Certificate. It alludes to the 12th class examination or higher secondary examination conducted by the Council for the Indian School Certificat…

《MySQL——連接查詢》

內連接&#xff1a; inner join 或者 join 外連接 1、左連接 left join 或 left outer join 2、右連接 right join 或 right outer join 3、完全外連接 full join 或 full outer join 圖示理解 全連接 創建person表和card表 CREATE DATABASE testJoin;CREATE TABLE person (…

win7下 apache2.2 +php5.4 環境搭建

這篇文章很好 沒法復制 把鏈接粘貼來http://www.360doc.com/content/13/0506/13/11495619_283349585.shtml# 現在能復制了&#xff1a; 把任何一篇你要復制、卻不讓復制的文章收藏入收藏夾(直接CtrlD,確定) 2在收藏夾中&#xff0c;右擊剛才收藏的那個網址&#xff0c;點屬性 3…

HDU_1533 Going Home(最優匹配) 解題報告

轉載請注明出自cxb:http://blog.csdn.net/cxb569262726 題目鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1533 說實話&#xff0c;這個題目剛開始還真看不出是完備匹配下的最大權匹配&#xff08;當然&#xff0c;這個也可以用網絡流做。&#xff08;應該是添加…

c#中 uint_C#中的uint關鍵字

c#中 uintC&#xff03;uint關鍵字 (C# uint keyword) In C#, uint is a keyword which is used to declare a variable that can store an integral type of value (unsigned integer) the range of 0 to 4,294,967,295. uint keyword is an alias of System.UInt32. 在C&…

《MySQL——事務》

目錄事務的必要性MySQL中如何控制事務手動開啟事務事務的四大特征事務的四大特征事務開啟方式事務手動提交與手動回滾事務的隔離性臟讀現象不可重復讀現象幻讀現象串行化一些補充使用長事務的弊病commit work and chain的語法是做什么用的?怎么查詢各個表中的長事務&#xff1…

運行在TQ2440開發板上以及X86平臺上的linux內核編譯

一、運行在TQ2440開發板上的linux內核編譯 1、獲取源碼并解壓 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源碼包。 解壓&#xff08;天嵌默認解壓到/opt/EmbedSky/linux-2.6.30.4/中&#xff09; tar xvjf linux-2.6.30.4_20100531.tar.bz2 -C / 2、獲取默認配置…

ArcCatalog ArcMap打不開

原來是因為&#xff1a; 連接了電信的無線網卡 關掉即可 啟動ArcCatalog之后再開啟無線網卡 沒問題&#xff01;轉載于:https://www.cnblogs.com/ccjcjc/archive/2012/08/21/2649867.html

Python熊貓– GroupBy

Python熊貓– GroupBy (Python Pandas – GroupBy) GroupBy method can be used to work on group rows of data together and call aggregate functions. It allows to group together rows based off of a column and perform an aggregate function on them. GroupBy方法可用…

MySQL索引底層原理理解以及常見問題總結

目錄二叉查找樹為索引紅黑樹為索引B樹作為索引B樹作為索引MyISAM存儲引擎索引實現InnoDB存儲引擎索引實現常見問題聚集索引與非聚集索引InnoDB基于主鍵索引和普通索引的查詢有什么區別&#xff1f;InnoDB主鍵索引為何是整型的自增主鍵何時使用業務字段作為主鍵呢&#xff1f;哈…

Spring之HibernateTemplate 和HibernateDaoSupport

spring提供訪問數據庫的有三種方式&#xff1a; HibernateDaoSupport HibernateTemplate&#xff08;推薦使用&#xff09; jdbcTemplate(我們一般不用&#xff09; 類所在包&#xff1a; HibernateTemplate&#xff1a;org.springframework.orm.hibernate3.HibernateTemplate …

JDOJ-重建二叉樹

這是一道面試題&#xff0c;可以說是數據結構中的基礎題了&#xff0c;由先序遍歷以及中序遍歷生成一棵樹&#xff0c;然后輸出后序遍歷。 一個遞歸函數傳遞5個參數&#xff0c;頂點編號&#xff0c;先序左右區間&#xff0c;中序左右區間&#xff0c;每次進行區間長度判定&…

des算法密碼多長_密碼學中的多個DES

des算法密碼多長This is a DES that was susceptible to attacks due to tremendous advances in computer hardware in cryptography. Hence, it was a very complex or competent algorithm it would be feasible to reuse DES rather than writing an of cryptography. 由于…

《MySQL——索引筆記》

目錄回表覆蓋索引最左前綴原則聯合索引的時候&#xff0c;如何安排索引內的字段順序&#xff1f;索引下推重建索引問題聯合主鍵索引和 InnoDB 索引組織表問題in與between的區別回表 回到主鍵索引樹搜索的過程&#xff0c;我們稱為回表。 覆蓋索引 覆蓋索引就是在這次的查詢中…

計算凸多邊形面積的算法

1. 思路&#xff1a; 可以將凸多邊形&#xff08;邊數n > 3&#xff09;劃分為 (n - 2) 個三角形&#xff0c;分別運用向量叉積計算每個三角形的面積&#xff0c;最后累加各個三角形的面積就是多邊形的面積。 2. 求多邊形面積的算法模板&#xff1a;   定義點的結構體 str…

Windows CE開發常見問題解答

轉自&#xff1a; http://blog.csdn.net/slyzhang/article/details/6110490 1.怎樣在一個控件獲得焦點時打開軟鍵盤&#xff1f;比如一個EditBox獲得焦點后&#xff0c;這個時候自動打開軟鍵盤&#xff0c;這樣可以方便用戶輸入——SIPINFO、SHSIPINFO、SIPSETINFO、SIPGETINFO…

Julia中的supertype()函數

Julia| supertype()函數 (Julia | supertype() function) supertype() function is a library function in Julia programming language, it is used to get the concrete supertype of the given type (data type). supertype()函數是Julia編程語言中的庫函數&#xff0c;用于…

《操作系統知識點整理》

目錄進程與線程比較多線程同步與互斥生產者與消費者哲學家就餐問題讀者寫者問題進程間通信管道消息隊列共享內存信號量信號Socket鎖互斥鎖與自旋鎖讀寫鎖樂觀鎖與悲觀鎖死鎖進程與線程比較 進程是資源&#xff08;包括內存、打開的文件等&#xff09;分配的單位&#xff0c;線…

for,foreach,iterator的用法和區別

相同點&#xff1a; 三個都可以用來遍歷數組和集合不同點&#xff1a;1.形式差別 for的形式是 for&#xff08;int i0;i<arr.size();i&#xff09;{...} foreach的形式是 for&#xff08;int i&…