sql描述
1. 如何用sql語句加描述
語法
sp_addextendedproperty
[ @name = ] { 'property_name' }
[ , [ @value = ] { 'value' }
[ , [ @level0type = ] { 'level0_object_type' }
, [ @level0name = ] { 'level0_object_name' }
[ , [ @level1type = ] { 'level1_object_type' }
, [ @level1name = ] { 'level1_object_name' }
[ , [ @level2type = ] { 'level2_object_type' }
, [ @level2name = ] { 'level2_object_name' }
]
]
]
]
參數
[ @name = ] { 'property_name' }
要添加的屬性名稱。property_name 的數據類型為 sysname,它不能是 NULL。名稱可能還包括空白或非字母數字字元串和二進制值。
[ @value = ] { 'value' }
將要與屬性相關聯的值。value 的數據類型為 sql_variant,帶有默認設置 NULL。value 的大小不能超過 7,500 位元組;否則 SQL Server 會產生錯誤。
[ @level0type = ] { 'level0_object_type' }
用戶或用戶定義類型。level0_object_type 的數據類型為 varchar(128),其默認值為 NULL。有效的輸入是 USER、TYPE 和 NULL。
[ @level0name = ] { 'level0_object_name' }
指定的 0 級對象類型的名稱。level0_object_name 的數據類型為 sysname,其默認值為 NULL。
[ @level1type = ] { 'level1_object_type' }
1 級對象的類型。level1_object_type 的數據類型為 varchar(128),其默認值為 NULL。有效的輸入是 TABLE、VIEW、PROCEDURE、FUNCTION、DEFAULT、RULE 和 NULL。
[ @level1name = ] { 'level1_object_name' }
指定的 1 級對象類型的名稱。level1_object_name 的數據類型為 sysname,其默認值為 NULL。
[ @level2type = ] { 'level2_object_type' }
2 級對象的類型。level2_object_type 的數據類型為 varchar(128),其默認值為 NULL。有效的輸入是 COLUMN、PARAMETER、INDEX、CONSTRAINT、TRIGGER 和 NULL。
[ @level2name = ] { 'level2_object_name' }
指定的 2 級對象類型的名稱。level2_object_name 的數據類型為 sysname,其默認值為 NULL。
返回代碼值
0(成功)或 1(失敗)
注釋
系統對象不允許有擴展屬性。
對象是按級別區分的,0 級為最高,2 級為最低。當用戶添加、更新或刪除擴展屬性時,必須指定所有更高級別的對象。例如,如果用戶要向 1 級對象添加擴展屬性,就必須指定所有 0 級信息。如果用戶要向 2 級對象添加擴展屬性,則必須提供關於 0 級和 1 級的所有信息。
在每個級別上,對象類型和對象名可唯一地標識對象。如果指定了一個對中的任一方,則必須指定另一方。
給定了有效 property_name 和 value,如果沒有任何對象類型和名稱,則屬性屬於當前資料庫。如果指定對象類型和名稱,則還必須指定父對象和類型。否則,SQL Server 會產生錯誤。
許可權
db_owner 和 db_ddladmin 固定資料庫角色的成員可以將擴展屬性添加到任何對象中。用戶可以為他們所擁有的對象添加擴展屬性。然而,只有 db_owner 可以將屬性添加到用戶名稱中。
示例
下面的示例將屬性 ('caption,' 'Employee ID') 添加到表"T1"的"ID"列中。
CREATE table T1 (id int , name char (20))
GO
EXEC sp_addextendedproperty 'caption', 'Employee ID', 'user', dbo, 'table', T1, 'column', id
//增加描述: DECLARE @v sql_variant SET @v = N'名稱'EXECUTE sp_addextendedproperty N'MS_Description', @v, N'user', N'dbo', N'table', N'BBSBoard', N'column', N'BBSBoardName'
2. SQL語句描述
加欄位的話太死板了,而且數據會可能會冗餘,要另外建立一個中轉表, 這樣即使中轉了很多次也可以記下來
我覺得要這樣設計:
航班信息表: 班次,起飛時間,實際起飛時間,起飛地點,降落時間,實際降落時間,降落地點。
中轉航班表: 班次(一對多外鍵), 中轉地點, 中轉降落時間,中轉起飛時間。
3. sql 為表添加描述信息
COMMENT ON TABLE table_name IS '表說明內容';COMMENT ON COLUMN column_name IS '行說明內容';
4. 什麼是SQL
SQL是一種編程語言,下面對其進行一個詳細介紹,你應該能看懂:
SQL(Structure Query Language)語言是資料庫的核心語言。
SQL的發展是從1974年開始的,其發展過程如下:
1974年-----由Boyce和Chamberlin提出,當時稱SEQUEL。
1976年-----IBM公司的Sanjase研究所在研製RDBMS SYSTEM R
時改為SQL。
1979年-----ORACLE公司發表第一個基於SQL的商業化RDBMS產品。
1982年-----IBM公司出版第一個RDBMS語言SQL/DS。
1985年-----IBM公司出版第一個RDBMS語言DB2。
1986年-----美國國家標准化組織ANSI宣布SQL作為資料庫工業標准。
SQL是一個標準的資料庫語言,是面向集合的描述性非過程化語言。
它功能強,效率高,簡單易學易維護(迄今為止,我還沒見過比它還好
學的語言)。然而SQL語言由於以上優點,同時也出現了這樣一個問題:
它是非過程性語言,即大多數語句都是獨立執行的,與上下文無關,而
絕大部分應用都是一個完整的過程,顯然用SQL完全實現這些功能是很困
難的。所以大多數資料庫公司為了解決此問題,作了如下兩方面的工作:
(1)擴充SQL,在SQL中引入過程性結構;(2)把SQL嵌入到高級語言中,
以便一起完成一個完整的應用。
二 SQL語言的分類
SQL語言共分為四大類:數據查詢語言DQL,數據操縱語言DML,
數據定義語言DDL,數據控制語言DCL。
1 數據查詢語言DQL
數據查詢語言DQL基本結構是由SELECT子句,FROM子句,WHERE
子句組成的查詢塊:
SELECT <欄位名表>
FROM <表或視圖名>
WHERE <查詢條件>
2 數據操縱語言
數據操縱語言DML主要有三種形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 刪除:DELETE
3 數據定義語言DDL
數據定義語言DDL用來創建資料庫中的各種對象-----表、視圖、
索引、同義詞、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
| | | | |
表 視圖 索引 同義詞 簇
4 數據控制語言DCL
數據控制語言DCL用來授予或回收訪問資料庫的某種特權,並控制
資料庫操縱事務發生的時間及效果,對資料庫實行監視等。如:
1) GRANT:授權。
2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一點。
回滾---ROLLBACK
回滾命令使資料庫狀態回到上次最後提交的狀態。其格式為:
SQL>ROLLBACK;
3) COMMIT [WORK]:提交。
在資料庫的插入、刪除和修改操作時,只有當事務在提交到數據
庫時才算完成。在事務提交前,只有操作資料庫的這個人才能有權看
到所做的事情,別人只有在最後提交完成後才可以看到。
提交數據有三種類型:顯式提交、隱式提交及自動提交。下面分
別說明這三種類型。
(1) 顯式提交
用COMMIT命令直接完成的提交為顯式提交。其格式為:
SQL>COMMIT;
(2) 隱式提交
用SQL命令間接完成的提交為隱式提交。這些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
(3) 自動提交
若把AUTOCOMMIT設置為ON,則在插入、修改、刪除語句執行後,
系統將自動進行提交,這就是自動提交。其格式為:
SQL>SET AUTOCOMMIT ON;
5. sql函數和過程的正確描述是什麼
區別如下:
存儲過程可以返回多個變數,函數只能返回一個,函數是可以嵌入在sql語句中使用的,而存儲過程不可以。
對於函數來書可以返回值或者表對象,而存儲過程來說可以返回參數。
函數可以通過return 語句返回函數值,而存儲過程不能。
當存儲過程和函數被執行的時候,SQL Manager會到procere cache中去取相應的查詢語句,如果在procere cache里沒有相應的查詢語句,SQL Manager就會對存儲過程和函數進行編譯。
sql示例:
創建函數、查找函數:
(5)sql描述擴展閱讀
存儲過程在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,它存儲在資料庫中,一次編譯後永久有效,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象。
在 SQL 中,基本的函數類型和種類有若干種。函數的基本類型是: Aggregate 函數 Scalar 函數
6. SQL的函數和過程正確的描述是
SQL允許定義函數、過程和方法。定義可通過SQL的有關過程的組件,也可以通過外部的程序設計語言,如Java,C或C++。SQL標准所定義的語法,與大多數資料庫實現的自身的非標准版本的語法不同。函數和過程允許「業務邏輯」作為存儲過程記錄在資料庫中,並在資料庫中執行。
業務邏輯能夠被寫成程序設計語言過程並完全存儲在資料庫之外,但把它們定義成資料庫中的存儲過程有幾個優點:
1 允許多個應用訪問這些過程。
2.允許當業務規則發生改變時進行單個點的改變,而不變改變應用系統的其他部分。
3.應用代碼可以調用存儲過程,而不是直接更新資料庫關系。
具體操作如下:
1. 聲明方式。
在begin……end之間的語句可以執行signal out_of_classrome_seats來引發異常。這個句柄說明如果條件發生,將會採取動作終止begin end中的語句。另一個可選的動作是continue,它繼續從引發異常的語句的下一條語句開始執行。