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