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操作符中使用正則表達式