sql命名規范
『壹』 那位有完整的資料庫命名規范給一份,跪等
資料庫設計過程中命名規范很是重要,命名規范合理的設計能夠省去開發人員很多時間去區別資料庫實體。
資料庫物理設計包括:表設計,視圖設計,存儲過程設計,用戶自定義函數設計等等。
1、 表設計命名規范:表使用t開頭最好能將表根據屬性分類並作好編號。
如:編碼表可寫為tBM001Something t為表開頭,BM為業務類型,001為該類別中的第幾個表something是表的名稱注釋。
2、 視圖設計命名規范:視圖設計過程中使用v開頭,視圖命名以製作視圖的主表為准或是以視圖的實現功能為准。
如:上述tBM001Something 為主表製作的視圖 可取名vBM001Something
或者vGetSomeThingInfo等。
3、存儲過程命名規范:用戶自定義存儲過程使用p開頭以其實現功能命名,
如:pGetSomethingInfo
4、
存儲過程命名規范:用戶自定義存儲過程使用f開頭以其實現功能命名,
如:fGetSomethingInfo
此外在製作視圖存儲過程用戶自定義函數過程中,注意寫好注釋。
還有
一.實體和屬性的命名
1. 常用單詞已經進行了縮寫,在命名過程當中,根據語義拼湊縮寫即可。注意,由於ORCAL資料庫會將欄位名稱統一成大寫或者小寫中的一種,所以要求加上下劃線
舉例:
定義的縮寫 Sales: Sal 銷售;
Order: Ord 訂單;
Detail: Dtl 明細;
則銷售訂單名細表命名為:Sal_Ord_Dtl;
2. 如果表或者是欄位的名稱僅有一個單詞,那麼建議不使用縮寫,而是用完整的單詞。
舉例:
定義的縮寫 Material Ma 物品;
物品表名為:Material, 而不是 Ma.
但是欄位物品編碼則是:Ma_ID;而不是Material_ID
3. 所有的存儲值列表的表前面加上前綴Z
目的是將這些值列表類排序在資料庫最後。
4. 所有的冗餘類的命名(主要是累計表)前面加上前綴X
冗餘類是為了提高資料庫效率,非規范化資料庫的時候加入的欄位。或者表
5. 關聯類通過用下劃線連接兩個基本類之後,再加前綴R的方式命名,後面按照字母順序羅列兩個表名或者表名的縮寫。
關聯表用於保存多對多關系。
如果被關聯的表名大於10個字母,必須將原來的表名的進行縮寫。如果沒有其他原因,建議都使用縮寫。
舉例:表Object與自身存在多對多的關系,則保存多對多關系的表命名為:R_Object;
表 Depart和Employee;存在多對多的關系;則關聯表命名為R_Dept_Emp
6. 每一個表都將有一個自動ID作為主健,邏輯上的主健作為第一組候選主健來定義,如果是資料庫自動生成的編碼,統一命名為:ID;如果是自定義的邏輯上的編碼則用縮寫加「ID」的方法命名。
舉例:銷售訂單的編號欄位命名:Sal_Ord_ID;如果還存在一個資料庫生成的自動編號,則命名為:ID。
7. 所有的屬性加上有關類型的後綴,類型後綴的縮寫定義見文件《類型後綴縮寫定義》,注意,如果還需要其它的後綴,都放在類型後綴之前。
二.關系的命名
關系的命名基本上按照;如有特殊情況,可以靈活處理.
[must/may/can/should][verb/verb+prep][a/many/exatly num][or a/many]的結構命名
三.域的命名
四.觸發器的命名
五.有關於默認的幾點說明
1. 嚴格依賴關系的主細表,主表的後綴Main可以不寫。
2. 數據類型是文本的欄位,類型後綴TX可以不寫。
3. 有些類型比較明顯的欄位,可以不寫類型後綴。
4. 非常明顯的關系,可以不寫。
『貳』 sql語句 重命名表
EXEC是調用或者執行的意思, SP_RENAME是SQL Server 2005資料庫中內置的一個存儲過程,他的功能就是重命名。 所謂存儲過程就是預編譯好的一段可執行的,有著特定功能的一段SQL語句的集合。 就像平時生活中,單個的一句話就是一句話,但是多句有聯系的話放在一起就是一個文章了。 select * from 表,就是一個單個的SQL語句,但是多個有聯系的SQL語句通過一定的語法放在一起,就是一個存儲過程了。這樣說,你可以理解了嗎?
『叄』 sql怎麼創建表
1.1 創建表方法
創建表是指在已存在的資料庫中建立新表。這是建立資料庫最重要的一步,是進行其他操作的基礎。
1.1.1 創建表的語法形式
CREATE TABLE 表名 (
屬性名 數據類型 [ 完整性約束條件 ],
屬性名 數據類型 [ 完整性約束條件 ],
......
屬性名 數據類型 [ 完整性約束條件 ],
)[ 表類型 ] [ 表字元集 ];
SQL 是不區分大小寫。下面將會具體介紹SQL,這種創建表是通過什麼方式起來的效果怎麼樣?
命名規范:
1. 命名富有意義 ( 英文或英文組合 )
2. 自定義名稱使用小寫
3. MySQL 語句使用大寫
CREATE TABLE IF NOT EXISTS data_house(
id INT,
name VARCHAR(20);
gender BOOLEAN,
) Engine = MyISAM;
上面 SQL 語句的含義是:如果不存在 text1 表,就創建它,包含 3 個欄位 id 、 name 和 gender ,它們的類型分別是整形、字元型和布爾型,創建的表的類型是 MyISAM 。
完整性約束條件表
PRIMARY KEY 標識該屬性為該表的主鍵,可以唯一的標識對應的元組
FOREIGN KEY 標識該屬性為該表的外鍵,是與之聯系的某表的主鍵
NOT NULL 標識該屬性不能為空
UNIQUE 標識該屬性的值是唯一的
AUTO_INCREMENT 標識該屬性的值自動增加,這是 MySQL 的 SQL 語句的特色 (null,0)
DEFAULT 標識該屬性設置默認值 (not null defualt 0,not null default 0.0,not null default '')
1.1.2 設置表的主鍵
主鍵是表的一個特殊欄位。該欄位能惟一地標識該表中的每條信息。主鍵和記錄的關系,如同身份證和人的關系。主鍵用來標識每個記錄,每個記錄的主鍵值都不同。身份證是用來標明人的身份,每個人都具有惟一的身份證號。設置表的主鍵指在創建表時設置表的某個欄位為該表的主鍵。
主鍵的主要目的是幫組 MySQL 以最快的速度查找到表中的某一條信息。
主鍵必須滿足的條件:
1. 主鍵必須是唯一的,表中任意兩條記錄的主鍵欄位的值不能相同;
2. 主鍵的值是非空值;
3. 主鍵可以是單一的欄位,也可以是多個欄位組合。
1. 單欄位的主鍵:
CREATE TABLE student1 (
stu_id INT PRIMARY KEY ,
stu_name VARCHAR(20) NOT NULL,
stu_gender BOOLEAN
) Engine = InnoDB;
2. 多欄位主鍵 :
CREATE TABLE student2 (
stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY( stu_id, course_id )
)Engine = InnoDB;
1.1.3 設置表的外鍵
外鍵是表的一個特殊欄位。如果欄位 sno 是一個表 A 的屬性,且依賴於表 B 的主鍵。那麼,稱表 B 為父表,表 A 為子表, sno 為表 A 的外鍵。通過 sno 欄位將父表 B 和子表 A 建立關聯關系。設置表的外鍵指在創建表設置某個欄位為外鍵。
設置外鍵的原則:必須依賴於資料庫中已存在的父表的主鍵;外鍵可以為空值。
外鍵的作用 : 是建立該表與其父表的關聯關系。父表中刪除某條信息時,子表中與之對應的信息也必須有相應的改變。例如, stu_id 就 student 表的主鍵, stu_id 是 grade 表的外鍵。當 stu_id 為 '123' 同學退學了,需要從 student 表中刪除該學生的信息。那麼, grade 表中 stu_id 為 '123' 的所有信息也應該同時刪除。
CONSTRAINT 外鍵別名 FOREIGN KEY ( 屬性 1.1, 屬性 1.2... 屬性 1.n);
REFERENCES 表名 ( 屬性 2.1, 屬性 2.2,..., 屬性 2.n)
CREATE TABLE student3 (
id INT PRIMARY KEY,
stu_id INT,
course_id INT,
# 設置外鍵
CONSTRAINT C_fk FOREIGN KEY (stu_id, course_id) REFERENCES student2(stu_id, course_id)
) Engine = InnoDB;
1.1.4 設置表的非空約束
非空性是指欄位的值不能為空值 (NULL) 。非空約束將保證所有記錄中該欄位都有值。如果用戶新插入的記錄中,該欄位為空值,則資料庫系統會報錯。例如,在 id 欄位加上非空約束, id 欄位的值就不能為空。如果插入記錄的 id 欄位的值為空,該記錄將不能插入。設置表的非空約束是指在創建表時為表的某些特殊欄位加上 NOT NULL 約束條件。設置非空約束的基本語法規則如下:
屬性名 數據類型 NOT NULL