sql語言的關鍵字
❶ sql輸出語句用的關鍵是()或()
sql="select*from表where欄位名like'%[a]%'"'這樣寫就可以查詢出欄位中含有小寫字母a的資料,而中括弧則不被認為是關鍵字。
SQL是高級的非過程化編輯語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統可以使用相同的sql語言作為數據輸入與管理的介面。
❷ 求SQL關鍵字和其語法(好的話,給100分)
1.數據定義語言(DDL)
數據定義語言是指用來定義和管理資料庫以及資料庫中的各種對象的語句,這些語句包括Create、Alter和Drop等語句。在SQL Server 2000中,資料庫對象包括表、視圖、觸發器、存儲過程、規則、預設、用戶自定義的數據類型等。這些對象的創建、修改和刪除等都可以通過使用Create、Alter、Drop等語句來完成。
2.數據操縱語言(DML)
數據操縱語言是指用來查詢、添加、修改和刪除資料庫中數據的語句,這些語句包括Select、Insert、Update、Delete等。在默認情況下,只有sysadmin、dbcreator、db_owner或db_datawriter等角色的成員才有權利執行數據操縱語言。
3.數據控制語言(DCL)
數據控制語言(DCL)是用來設置或者更改資料庫用戶或角色許可權的語句,這些語句包括GRANT、DENY、REVOKE等語句,在默認狀態下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成員才有權利執行數據控制語言。
GRANT語句是授權語句,它可以把語句許可權或者對象許可權授予給其他用戶和角色。
DENY語句用於拒絕給當前資料庫內的用戶或者角色授予許可權,並防止用戶或角色通過其組或角色成員繼承許可權。
REVOKE語句是與GRANT語句相反的語句,它能夠將以前在當前資料庫內的用戶或者角色上授予或拒絕的許可權刪除,但是該語句並不影響用戶或者角色從其他角色中作為成員繼承過來的許可權。
----------------------------------------------
4. 系統存儲過程
系統存儲過程是SQL Server系統創建的存儲過程,它的目的在於能夠方便地從系統表中查詢信息,或者完成與更新資料庫表相關的管理任務或其它的系統管理任務。系統存儲過程可以在任意一個資料庫中執行。系統存儲過程創建並存放於系統資料庫master中,並且名稱以sp_或者xp_開頭。
sp_addtype:用於定義一個用戶定義數據類型。
sp_configure:用於管理伺服器配置選項設置。
xp_sendmail:用於發送電子郵件或尋呼信息。
sp_stored_proceres:用於返回當前資料庫中的存儲過程的清單。
sp_help:用於顯示參數清單和其數據類型。
sp_depends:用於顯示存儲過程依據的對象或者依據存儲過程的對象。
sp_helptext:用於顯示存儲過程的定義文本。
sp_rename:用於修改當前資料庫中用戶對象的名稱
3.數據控制語言(DCL)
數據控制語言(DCL)是用來設置或者更改資料庫用戶或角色許可權的語句,這些語句包括GRANT、DENY、REVOKE等語句,在默認狀態下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成員才有權利執行數據控制語言。
GRANT語句是授權語句,它可以把語句許可權或者對象許可權授予給其他用戶和角色。
DENY語句用於拒絕給當前資料庫內的用戶或者角色授予許可權,並防止用戶或角色通過其組或角色成員繼承許可權。
REVOKE語句是與GRANT語句相反的語句,它能夠將以前在當前資料庫內的用戶或者角色上授予或拒絕的許可權刪除,但是該語句並不影響用戶或者角色從其他角色中作為成員繼承過來的許可權。
----------------------------------------------
4. 系統存儲過程
系統存儲過程是SQL Server系統創建的存儲過程,它的目的在於能夠方便地從系統表中查詢信息,或者完成與更新資料庫表相關的管理任務或其它的系統管理任務。系統存儲過程可以在任意一個資料庫中執行。系統存儲過程創建並存放於系統資料庫master中,並且名稱以sp_或者xp_開頭。
sp_addtype:用於定義一個用戶定義數據類型。
sp_configure:用於管理伺服器配置選項設置。
xp_sendmail:用於發送電子郵件或尋呼信息。
sp_stored_proceres:用於返回當前資料庫中的存儲過程的清單。
sp_help:用於顯示參數清單和其數據類型。
sp_depends:用於顯示存儲過程依據的對象或者依據存儲過程的對象。
sp_helptext:用於顯示存儲過程的定義文本。
sp_rename:用於修改當前資料庫中用戶對象的名稱。
程序代碼
1. EXEC sp_renamedb 'userdb1', 'userdb2'
更改資料庫的名稱,由userdb1更改為userdb2
2.EXEC sp_rename 'user_log','用戶登錄表'
更改當前資料庫表的名稱,由user_log,改為'用戶登錄表'
EXEC sp_rename 'user_info.user_name', '用戶名','column'
將user_info表的'user_name'列重命名為'用戶名'
3.EXEC sp_detach_db 'pubs', 'true'
sp_detach_db
從伺服器分離資料庫,並可以選擇在分離前在所有的表上運行 Update STATISTICS。
4. 將資料庫附加到伺服器
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
5. 將只有一個數據文件的資料庫附加到當前伺服器
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
----------------------------------------------
SQL中的注釋
在SQL Server中,可以使用兩種類型的注釋字元:一種是ANSI標準的注釋符「--」,它用於單行注釋;另一種是與C語言相同的程序注釋符號,即「/* */」。
SQL中的變數
Transact-SQL語言中有兩種形式的變數,一種是用戶自己定義的局部變數,另外一種是系統提供的全局變數。
3.數據控制語言(DCL)
數據控制語言(DCL)是用來設置或者更改資料庫用戶或角色許可權的語句,這些語句包括GRANT、DENY、REVOKE等語句,在默認狀態下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成員才有權利執行數據控制語言。
GRANT語句是授權語句,它可以把語句許可權或者對象許可權授予給其他用戶和角色。
DENY語句用於拒絕給當前資料庫內的用戶或者角色授予許可權,並防止用戶或角色通過其組或角色成員繼承許可權。
REVOKE語句是與GRANT語句相反的語句,它能夠將以前在當前資料庫內的用戶或者角色上授予或拒絕的許可權刪除,但是該語句並不影響用戶或者角色從其他角色中作為成員繼承過來的許可權。
----------------------------------------------
4. 系統存儲過程
系統存儲過程是SQL Server系統創建的存儲過程,它的目的在於能夠方便地從系統表中查詢信息,或者完成與更新資料庫表相關的管理任務或其它的系統管理任務。系統存儲過程可以在任意一個資料庫中執行。系統存儲過程創建並存放於系統資料庫master中,並且名稱以sp_或者xp_開頭。
sp_addtype:用於定義一個用戶定義數據類型。
sp_configure:用於管理伺服器配置選項設置。
xp_sendmail:用於發送電子郵件或尋呼信息。
sp_stored_proceres:用於返回當前資料庫中的存儲過程的清單。
sp_help:用於顯示參數清單和其數據類型。
sp_depends:用於顯示存儲過程依據的對象或者依據存儲過程的對象。
sp_helptext:用於顯示存儲過程的定義文本。
sp_rename:用於修改當前資料庫中用戶對象的名稱。
程序代碼
1. EXEC sp_renamedb 'userdb1', 'userdb2'
更改資料庫的名稱,由userdb1更改為userdb2
2.EXEC sp_rename 'user_log','用戶登錄表'
更改當前資料庫表的名稱,由user_log,改為'用戶登錄表'
EXEC sp_rename 'user_info.user_name', '用戶名','column'
將user_info表的'user_name'列重命名為'用戶名'
3.EXEC sp_detach_db 'pubs', 'true'
sp_detach_db
從伺服器分離資料庫,並可以選擇在分離前在所有的表上運行 Update STATISTICS。
4. 將資料庫附加到伺服器
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
5. 將只有一個數據文件的資料庫附加到當前伺服器
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
----------------------------------------------
SQL中的注釋
在SQL Server中,可以使用兩種類型的注釋字元:一種是ANSI標準的注釋符「--」,它用於單行注釋;另一種是與C語言相同的程序注釋符號,即「/* */」。
SQL中的變數
Transact-SQL語言中有兩種形式的變數,一種是用戶自己定義的局部變數,另外一種是系統提供的全局變數。
局部變數:局部變數是一個能夠擁有特定數據類型的對象,它的作用范圍僅限制在程序內部。局部變數可以作為計數器來計算循環執行的次數,或是控制循環執行的次數。另外,利用局部變數還可以保存數據值,以供控制流語句測試以及保存由存儲過程返回的數據值等。局部變數被引用時要在其名稱前加上標志「@」,而且必須先用DECLARE命令定義後才可以使用。
全局變數:全局變數是SQL Server系統內部使用的變數,其作用范圍並不僅僅局限於某一程序,而是任何程序均可以隨時調用。全局變數通常存儲一些SQL Server的配置設定值和統計數據。用戶可以在程序中用全局變數來測試系統的設定值或者是Transact-SQL命令執行後的狀態值。
使用全局變數時應該注意以下幾點:
①全局變數不是由用戶的程序定義的,它們是在伺服器級定義的。
②用戶只能使用預先定義的全局變數。
③引用全局變數時,必須以標記符「@@」開頭。
④局部變數的名稱不能與全局變數的名稱相同,否則會在應用程序中出現不可預測的結果。
----------------------------------------------
SQL中的函數
在Transact-SQL語言中,函數被用來執行一些特殊的運算以支持SQL Server的標准命令。Transact-SQL 編程語言提供了三種函數:
一行集函數:行集函數可以在Transact-SQL語句中當作表引用。
二聚合函數:聚合函數用於對一組值執行計算並返回一個單一的值。
三標量函數:標量函數用於對傳遞給它的一個或者多個參數值進行處理和計算,並返回一個單一的值。
1.字元串函數
字元串函數包括:
基本字元串函數:UPPER、LOWER、SPACE、REPLICATE、STUFF、REVERSE、LTRIM、RTRIM。
字元串查找函數:CHARINDEX、PATINDEX。
長度和分析函數:DATALENGTH、SUBSTRING、RIGHT。
轉換函數:ASCH、CHAR、STR、SOUNDEX、DIFFERENCE。
基本字元串函數
UPPER:將小寫字元數據轉換為大寫的字元
LOWER:將大寫字元數據轉換為小寫的字元
SPACE:返回由重復的空格組成的字元串。如:space(2)則返回兩個空格
REPLICATE:以指定的次數重復字元表達式。
語法:REPLICATE ( character_expression , integer_expression )
如:Select REPLICATE(au_fname, 2) FROM authors,則重復兩遍每個作者的名字
STUFF:刪除指定長度的字元並在指定的起始點插入另一組字元。
語法:STUFF ( character_expression , start , length , character_expression )
(start是一個整形值,指定刪除和插入的開始位置。如果 start 或 length 是負數,則返回空字元串。如果 start 比第一個 character_expression 長,則返回空字元串。
length是一個整數,指定要刪除的字元數。如果 length 比第一個 character_expression 長,則最多刪除到最後一個 character_expression 中的最後一個字元。)
3.數據控制語言(DCL)
數據控制語言(DCL)是用來設置或者更改資料庫用戶或角色許可權的語句,這些語句包括GRANT、DENY、REVOKE等語句,在默認狀態下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成員才有權利執行數據控制語言。
GRANT語句是授權語句,它可以把語句許可權或者對象許可權授予給其他用戶和角色。
DENY語句用於拒絕給當前資料庫內的用戶或者角色授予許可權,並防止用戶或角色通過其組或角色成員繼承許可權。
REVOKE語句是與GRANT語句相反的語句,它能夠將以前在當前資料庫內的用戶或者角色上授予或拒絕的許可權刪除,但是該語句並不影響用戶或者角色從其他角色中作為成員繼承過來的許可權。
----------------------------------------------
4. 系統存儲過程
系統存儲過程是SQL Server系統創建的存儲過程,它的目的在於能夠方便地從系統表中查詢信息,或者完成與更新資料庫表相關的管理任務或其它的系統管理任務。系統存儲過程可以在任意一個資料庫中執行。系統存儲過程創建並存放於系統資料庫master中,並且名稱以sp_或者xp_開頭。
sp_addtype:用於定義一個用戶定義數據類型。
sp_configure:用於管理伺服器配置選項設置。
xp_sendmail:用於發送電子郵件或尋呼信息。
sp_stored_proceres:用於返回當前資料庫中的存儲過程的清單。
sp_help:用於顯示參數清單和其數據類型。
sp_depends:用於顯示存儲過程依據的對象或者依據存儲過程的對象。
sp_helptext:用於顯示存儲過程的定義文本。
sp_rename:用於修改當前資料庫中用戶對象的名稱。
程序代碼
1. EXEC sp_renamedb 'userdb1', 'userdb2'
更改資料庫的名稱,由userdb1更改為userdb2
2.EXEC sp_rename 'user_log','用戶登錄表'
更改當前資料庫表的名稱,由user_log,改為'用戶登錄表'
EXEC sp_rename 'user_info.user_name', '用戶名','column'
將user_info表的'user_name'列重命名為'用戶名'
3.EXEC sp_detach_db 'pubs', 'true'
sp_detach_db
從伺服器分離資料庫,並可以選擇在分離前在所有的表上運行 Update STATISTICS。
4. 將資料庫附加到伺服器
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
5. 將只有一個數據文件的資料庫附加到當前伺服器
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
----------------------------------------------
SQL中的注釋
在SQL Server中,可以使用兩種類型的注釋字元:一種是ANSI標準的注釋符「--」,它用於單行注釋;另一種是與C語言相同的程序注釋符號,即「/* */」。
SQL中的變數
Transact-SQL語言中有兩種形式的變數,一種是用戶自己定義的局部變數,另外一種是系統提供的全局變數。
局部變數:局部變數是一個能夠擁有特定數據類型的對象,它的作用范圍僅限制在程序內部。局部變數可以作為計數器來計算循環執行的次數,或是控制循環執行的次數。另外,利用局部變數還可以保存數據值,以供控制流語句測試以及保存由存儲過程返回的數據值等。局部變數被引用時要在其名稱前加上標志「@」,而且必須先用DECLARE命令定義後才可以使用。
全局變數:全局變數是SQL Server系統內部使用的變數,其作用范圍並不僅僅局限於某一程序,而是任何程序均可以隨時調用。全局變數通常存儲一些SQL Server的配置設定值和統計數據。用戶可以在程序中用全局變數來測試系統的設定值或者是Transact-SQL命令執行後的狀態值。
使用全局變數時應該注意以下幾點:
①全局變數不是由用戶的程序定義的,它們是在伺服器級定義的。
②用戶只能使用預先定義的全局變數。
③引用全局變數時,必須以標記符「@@」開頭。
④局部變數的名稱不能與全局變數的名稱相同,否則會在應用程序中出現不可預測的結果。
----------------------------------------------
SQL中的函數
在Transact-SQL語言中,函數被用來執行一些特殊的運算以支持SQL Server的標准命令。Transact-SQL 編程語言提供了三種函數:
一行集函數:行集函數可以在Transact-SQL語句中當作表引用。
二聚合函數:聚合函數用於對一組值執行計算並返回一個單一的值。
三標量函數:標量函數用於對傳遞給它的一個或者多個參數值進行處理和計算,並返回一個單一的值。
1.字元串函數
字元串函數包括:
基本字元串函數:UPPER、LOWER、SPACE、REPLICATE、STUFF、REVERSE、LTRIM、RTRIM。
字元串查找函數:CHARINDEX、PATINDEX。
長度和分析函數:DATALENGTH、SUBSTRING、RIGHT。
轉換函數:ASCH、CHAR、STR、SOUNDEX、DIFFERENCE。
基本字元串函數
UPPER:將小寫字元數據轉換為大寫的字元
LOWER:將大寫字元數據轉換為小寫的字元
SPACE:返回由重復的空格組成的字元串。如:space(2)則返回兩個空格
REPLICATE:以指定的次數重復字元表達式。
語法:REPLICATE ( character_expression , integer_expression )
如:Select REPLICATE(au_fname, 2) FROM authors,則重復兩遍每個作者的名字
STUFF:刪除指定長度的字元並在指定的起始點插入另一組字元。
語法:STUFF ( character_expression , start , length , character_expression )
(start是一個整形值,指定刪除和插入的開始位置。如果 start 或 length 是負數,則返回空字元串。如果 start 比第一個 character_expression 長,則返回空字元串。
length是一個整數,指定要刪除的字元數。如果 length 比第一個 character_expression 長,則最多刪除到最後一個 character_expression 中的最後一個字元。)
REVERSE:反轉字元串Select REVERSE('abcd') 則返回『dcba』
字元串查找函數
參考:http://www.badguy.name/article.asp?id=93
長度和分析函數
DATALENGTH :返回任何錶達式所佔用的位元組數。
SUBSTRING:參考http://www.badguy.name/article.asp?id=105
LEFT:返回從字元串左邊開始指定個數的字元。
RIGHT:返回從字元串左邊開始指定個數的字元。Select RIGHT(au_fname, 5) FROM authors
2.日期和時間函數
datepart
示例:
3.數學函數
數學函數用於對數字表達式進行數學運算並返回運算結果。 常用的有:CEILING()、FLOOR()、ROUND()函數
4.轉換函數
一般情況下,SQL Server會自動處理某些數據類型的轉換。例如,如果比較 char 和 datetime 表達式、smallint 和 int 表達式、或不同長度的 char 表達式,SQL Server 可以將它們自動轉換,這種轉換被稱為隱性轉換。但是,無法由SQL Server自動轉換的或者是SQL Server自動轉換的結果不符合預期結果的,就需要使用轉換函數做顯示轉換。轉換函數有兩個:CONVERT和CAST。
CAST ( expression AS data_type )
CONVERT函數允許用戶把表達式從一種數據類型轉換成另一種數據類型,還允許把日期轉換成不同的樣式。其語法形式為:
CONVERT (data_type[(length)],expression [,style])
流程式控制制語句是指那些用來控製程序執行和流程分支的命令,在SQL Server 2000中,流程式控制制語句主要用來控制SQL語句、語句塊或者存儲過程的執行流程。
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
BEGIN
{ sql_statement
| statement_block }
END
❸ sql中,dml,dcl,dql,ddl分別代表什麼意思
1,DML(DataManipulationLanguage):數據操作語言,用來定義資料庫記錄(數據)
2,DCL(DataControlLanguage):數據控制語言,用來定義訪問許可權和安全級別;
3,DQL(DataQueryLanguage):數據查詢語言,用來查詢記錄(數據);
4,DDL(DataDefinitionLanguage):數據定義語言,用來定義資料庫對象:庫、表、列等。
(3)sql語言的關鍵字擴展閱讀
DML分成交互型DML和嵌入型DML兩類。
依據語言的級別,DML又可分成過程性DML和非過程性DML兩種。
如insert,delete,update,select(插入、刪除、修改、檢索)等都是DML.
交互型DML:這類DML自成系統,可在終端上直接對資料庫進行操作。
嵌入型DML:這類DML是嵌入在主語言中使用。此時主語言是經過擴充能處理DML語句的語言。
過程性DML:用戶編程時,不僅需要指出「做什麼」(需要什麼樣的數據),還需要指出「怎麼做」(怎麼獲得數據)。層狀、網狀的DML屬於過程性語言。
非過程性DML:用戶編程時,只需要指出「做什麼」,不需要指出「怎麼做」。關系型DML屬於非過程性語言。
❹ 寫出SQL語句中選擇查詢的主要關鍵字,並解釋說明選擇查詢語句的格式及用法
1、CREATE [UNIQUE|CLUSTERED] INDEX INDEX_NAME ON TABLE_NAME(PROPERTY_NAME)2、其中UNIQUE和CLUSTERED為可選項,分別是建立唯一索引和聚簇索引,具體解釋為:UNIQUE:表示此索引的每一個索引值只對應唯一的數據。3、CLUSTERED:表示要建立的索引時聚簇索引,即索引項的順序與表中記錄的物理順序一致的索引組織。
拓展:
1、SQL語言,是結構化查詢語言(Structured Query Language)的簡稱。SQL語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
2、SQL語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統可以使用相同的結構化查詢語言作為數據輸入與管理的介面。SQL語言語句可以嵌套,這使他具有極大的靈活性和強大的功能。
3、結構化查詢語言SQL(STRUCTURED QUERY LANGUAGE)是最重要的關系資料庫操作語言,並且它的影響已經超出資料庫領域,得到其他領域的重視和採用,如人工智慧領域的數據檢索,第四代軟體開發工具中嵌入SQL的語言等。
❺ 第三章 SQL語言元素(一)
InterSystems SQL命令(也稱為SQL語句)以關鍵字開頭,後跟一個或多個參數。其中一些參數可能是子句或函數,由它們自己的關鍵字標識。
InterSystems SQL關鍵字包括命令名稱,函數名稱,謂詞條件名稱,數據類型名稱,欄位約束,優化選項和特殊變數。它們還包括 AND , OR 和 NOT 邏輯運算符, NULL 列值指示符以及ODBC函數構造,例如 {d dateval} 和 {fn CONCAT(str1,str2)} 。
聚合函數是SQL固有函數,它計算列的所有值並返回單個聚合值。
這種寫法只能在mac routine里,類文件里編譯報錯。
如果將用戶提供的(外部)函數的使用配置為系統范圍的選項,則該SQL語句只能調用用戶提供的(外部)函數。默認為「否」。默認情況下,嘗試調用用戶提供的函數會發出 SQLCODE -372 錯誤。可以使用 %SYSTEM.SQL類的SetAllowExtrinsicFunctions() 方法在系統范圍內配置SQL對外部函數的使用。若要確定當前設置,請調用 $SYSTEM.SQL.CurrentSettings() ,該顯示顯示「允許在SQL語句中使用外部函數」選項。
不能使用用戶提供的函數來調用 %routine (名稱以%字元開頭的常式)。
嘗試這樣做會發出 SQLCODE -373 錯誤。
InterSystems SQL文字具有以下語法:
文字是一系列代表實際(文字)值的字元。它可以是數字或字元串。
空字元串是文字字元串;它由兩個單引號字元( '' )表示。 NULL 不是文字值;它表示沒有任何值。
注意:在嵌入式SQL中,不允許在字元串文字中使用以 ## 開頭的一些字元序列,如「使用嵌入式SQL」一章的「文字值」中所述。此限制不適用於其他SQL調用,例如動態SQL。
使用單引號( ' )字元作為字元串定界符。 SQL兼容性支持雙引號字元( 「 )的使用,但由於與定界標識符標准沖突,因此強烈建議不要使用。將一對雙引號字元 "" 解析為無效的定界標識符。並生成 SQLCODE -1 錯誤。
要在字元串中指定單引號字元作為字面字元,請指定一對這樣的字元作為字面轉義序列。
例如, 'a 'normal' string' 。
雙豎條( || )是首選的SQL連接操作符。
它可以用於連接兩個數字、兩個字元串或一個數字和一個字元串。
下劃線( _ )作為SQL連接操作符提供,以保證ObjectScript的兼容性。
此連接操作符只能用於連接兩個字元串。
如果兩個操作數都是字元串,並且兩個字元串都具有相同的排序規則類型,則所得的級聯字元串具有該排序規則類型。在所有其他情況下,連接的結果是排序類型 EXACT 。
使用 NULL 關鍵字表示沒有指定值。
在SQL中, NULL 始終是表示數據值因任何原因未指定或不存在的首選方式。
SQL零長度字元串(空字元串)由兩個單引號字元指定。
空字元串( " )與空字元串是不同的。
空字元串是一個已定義的值,一個不包含字元的字元串,一個長度為0的字元串。
一個零長度的字元串在內部由非顯示字元 $CHAR(0) 表示。
注意:不建議使用SQL零長度字元串作為欄位輸入值或欄位默認值。
使用 NULL 表示數據值的缺失。
在SQL編碼中應避免使用SQL零長度字元串。
但是,由於許多SQL操作都會刪除末尾的空格,所以只包含空格字元(空格和製表符)的數據值可能會導致SQL的零長度字元串。
注意,不同的SQL length函數返回不同的值: length 、 CHAR_LENGTH 和 DATALENGTH 返回SQL長度。
$LENGTH 返回ObjectScript表示長度。
長度不計算尾隨空格;
所有其他長度函數都計算末尾的空格。
NOT NULL數據約束要求欄位必須接收一個數據值;
不允許指定NULL而不是值。
這個約束不阻止使用空字元串值。
SELECT 語句的 WHERE 或 HAVING 子句中的 IS NULL 謂詞選擇空值;
它不選擇空字元串值。
IFNULL 函數計算一個欄位值,如果欄位值為 NULL ,則返回第二個參數中指定的值。
它不會將空字元串值視為非空值。
COALESCE 函數從提供的數據中選擇第一個非空值。
它將空字元串值視為非空值。
當 CONCAT 函數或 concenate 操作符( || )連接一個字元串和一個 NULL 時,結果是 NULL 。
如下面的例子所示:
AVG、COUNT、MAX、MIN 和 SUM 聚合函數在執行操作時忽略 NULL 值。
( COUNT * 統計所有行,因為不可能有一個所有欄位都為空值的記錄。)
SELECT 語句的 DISTINCT 關鍵字在其操作中包含 NULL ;
如果指定的欄位有空值, DISTINCT 返回一個空行.
AVG 、 COUNT 和 MIN 、聚合函數受空字元串值的影響。
MIN 函數將空字元串視為最小值,即使存在值為0的行。
MAX 和 SUM 聚合函數不受空字元串值的影響。
對大多數SQL函數提供 NULL 作為操作數將返回 NULL 。
任何以NULL作為操作數的SQL算術操作都返回 NULL 值。
因此,7 +零=零。
這包括二元運算加法( + )、減法( - )、乘法( * )、除法( / )、整數除法( )和取模( # ),以及一元符號運算符加號( + )和減號( - )。
算術操作中指定的空字元串將被視為0(零)值。
除法( / ),整數除法( ),或對空字元串( 6/ " )取模( # )會導致 <DIVIDE> 錯誤。
在SQL中, NULL 的長度是沒有定義的(它返回 < NULL > )。
然而,空字元串的長度被定義為長度為0。
如下面的例子所示:
如本例所示,SQL LENGTH 函數返回SQL長度。
可以使用 ASCII 函數將SQL的零長度字元串轉換為 NULL ,示例如下:
但是,對標准 SQL 的某些系統間IRIS擴展對 NULL 和空字元串的長度的處理是不同的。
$LENGTH函數返回這些值的InterSystems IRIS內部表示: NULL 表示為長度為0的已定義值,SQL空字元串表示為長度為0的字元串。
該功能與ObjectScript兼容。
這些值的內部表示方式的另一個重要位置是 %STRING 、 %SQLSTRING 和 %SQLUPPER 函數,它們將空格附加到值中。
因為 NULL 實際上沒有值,所以在它後面添加一個空格會創建一個長度為1的字元串。
但是一個空字元串確實有一個字元值,所以在它後面加上一個空格會創建一個長度為2的字元串。
如下面的例子所示:
注意,這個例子使用的是 CHAR_LENGTH ,而不是 LENGTH 。
因為 LENGTH 函數刪除了末尾的空格,所以 LENGTH(%STRING(NULL)) 返回長度為0的字元串;
LENGTH(%STRING(")) 返回長度為2的字元串, 因為 %STRING 追加的是前導空格,而不是尾隨空格。
當SQL NULL 輸出到ObjectScript時,它由ObjectScript空字元串( "" )表示,長度為0的字元串。
當SQL零長度字元串數據輸出到ObjectScript時,它由包含 $CHAR(0) 的字元串表示,該字元串長度為1。
在ObjectScript中,沒有值通常用空字元串( "" )表示。
當這個值被傳遞到嵌入式SQL中時,它會被視為空值,如下面的例子所示:
如果指定了一個未定義的輸入主機變數,嵌入式SQL將其值視為 NULL 。
當將NULL或空字元串值從嵌入式SQL傳遞到ObjectScript時, NULL 被轉換為長度為0的字元串,空字元串被轉換為長度為1的字元串。
如下面的例子所示:
在下面的例子中,SQL的空字元串加上一個空格被傳遞為長度為2的字元串:
❻ SQL語言中條件子句的關鍵詞是什麼
A表、B表,兩張表中都有一個欄位相同並且是唯一的,比如身份證號碼,那麼這個可以稱為關鍵詞,主要用來鏈接兩張表。
❼ mysql 中有什麼關鍵字可以代替 sql語言中的
如果sql語句中存在關鍵字,可以用反勾號(Esc下面的那個鍵)做轉義;
` 是 MySQL 的轉義符,避免和 mysql 的本身的關鍵字沖突,只要你不在列名、表名中使用 mysql 的保留字或中文,就不需要轉義。
所有的資料庫都有類似的設置,不過mysql用的是`而已。通常用來說明其中的內容是資料庫名、表名、欄位名,不是關鍵字。例如:
select from from table;
第一個from是欄位名,最後的table表名,但是同時也是mysql關鍵字,這樣執行的時候就會報錯,所以應該使用
select `from` from `table`;
當然,為了便於閱讀,不建議使用關鍵字作為欄位名、表名,同時,應該對資料庫名、表名、欄位名用一對兒反引號包含。
❽ SQL語言中的數據定義子語言使用定義,修改和刪除的關鍵字是
create定義關鍵字
alter 修改關鍵字
drop 刪除關鍵字
❾ SQL語言中AS關鍵字的用法
如果sql語句中存在關鍵字,可以用反勾號(esc下面的那個鍵)做轉義;
`
是
mysql
的轉義符,避免和
mysql
的本身的關鍵字沖突,只要你不在列名、表名中使用
mysql
的保留字或中文,就不需要轉義。
所有的資料庫都有類似的設置,不過mysql用的是`而已。通常用來說明其中的內容是資料庫名、表名、欄位名,不是關鍵字。例如:
select
from
from
table;
第一個from是欄位名,最後的table表名,但是同時也是mysql關鍵字,這樣執行的時候就會報錯,所以應該使用
select
`from`
from
`table`;
當然,為了便於閱讀,不建議使用關鍵字作為欄位名、表名,同時,應該對資料庫名、表名、欄位名用一對兒反引號包含。
❿ SQL語言中,創建視圖的關鍵字()。
CREATEVIEW命令。