SQL學習記錄

1、表的某一列對於只接受特定的值來說,需要增加一個約束條件,

gender CHAR(1) CHECK (gender IN ('M','F'))

對於大多說數據庫服務器中檢查約束來說能夠如期的工作,但對於MySQL來說,雖然定義了檢查約束,但並不強制,實際上MySQL提供了另一種名爲enum的字符數據類型,它可以將檢查約束和數據定義融合在一起:gender ENUM('M','F');

2、ALERT TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT

修改person表的person_id 爲自增;

3、獲取XML格式的數據:

MySQL :登錄時:MySQL -u root -p --xml 數據庫名稱

之後查詢  Select * from 表名,出來的就是XML格式。

SQL Server  無需命令 只需在每個查詢的末尾增加 for xml子句即可

4、SELECT VERSION(),USER(),DATABASE();

3個簡單的內建函數,返回數據庫的版本,當前用戶,當前數據庫名稱

5、DISTINCT 產生無重複的的結果集是首先對數據排序的,這對於打的表來說是相當耗時的,因此不能爲了去除重複的行而隨意的使用distinct,而是應該先了解所使用的數據是否可能包含重複的行,以減少對distinct的不必要使用。

6、SQL如果帶通配符的字符串仍然不能提供足夠的靈活性,那麼可以使用正則表達式。

查找姓名已F或者G開頭的記錄

MySQL :select * from emp where name REGEXP '^[FG]'

Oracle使用的是regexp_like 而SQL Server則允許like操作符中使用正則表達式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章