DDL
创建数据库:
xxxxxxxxxxCREATE DATABASE 数据库名;创建Table
xxxxxxxxxxCREATE TABLE 表名 ( 列名 数据类型 [Primary Key | Unique][Not null], 列名 数据类型, ...... 列名 数据类型);由[]括起来的可以省略, |表示隔开的两项可选其一
- Primary Key:主键约束,每个表只能一个
- Unique:唯一约束(候选键),可以有多个唯一性约束
- Not null:非空约束,该列不允许有空值出现
数据类型:
- char(n), n个字符
- varchar(n), 可边长字符串
- int, 整形
- numeric(p, q):固定精度数字,小数点左边p位,右边p-q位
- real:浮点精度数字,小数点后保留n位
- date:日期(如 2003-09-12)
- time:时间(如 23:15:003)
xxxxxxxxxxCREATE TABLE Teacher (Tnum char(11),Tname varchar(4),Tage int(2),Tgender char);DML
向表中追加元组
xinsert into 表名 values('','',...); //以默认列追加insert into 表名(列1,列2,列3...) values('','','',...); //以指定列追加检索
Select 列名 from 表名 where 检索条件;
select相当于投影,where相当于sigma,为检索条件
示例:检索学生表中所有年龄小于等于19岁的学生的年龄及姓名
xxxxxxxxxxSelect Sage,SnameFrom Student WhereSage Where Sage <= 19;结果唯一性问题
在Table中要求无重复元组是通过定义Primary Key或Unique来保证的,而在检索结果中要求无重复元组,是通过distinct保留字的使用来实现的。
示例:在选课表中,检索成绩大于80分的所有学
xxxxxxxxxxSelect S# From SC Where Score > 80 ;如果有同学两门课程大于80,那么重复,解决办法:
x
Select DISTINCT S#From SCWhere Score > 80;结果排序
DBMS可以对检索结果进行排序,可以升序排列,也可以降序排列
Select语句中结果排序是通过order by子句实现的
xxxxxxxxxxOrder by 列名 asc或desc示例:按学号由小到大显示所有学生的学号和姓名
xxxxxxxxxxSelect S#, Sname From StudentOrder by S# desc;示例:检索002号课大于80分的所有同学学号并按成绩由高到低顺序显示
xxxxxxxxxxSelect S# From SCWhere C# = '002' and Score > 80Order By Score desc;模糊查询
在Select语句中,通过检索条件中引入运算符like来表示
- 含有like运算符的表达式
xxxxxxxxxx列名 [not] like "字符串"匹配规则:
- % 匹配零个或多个字符
- - 匹配任意单个字符
- \ 转义字符,用于去掉一些特殊字符的特定含义,使其被作为普通字符看待
示例::检索所有姓张的学生学号及姓名
xxxxxxxxxxSelect S#, Sname From StudentWhere Sname Like '张%';示例::检索不含姓张的学生姓名
Select Sname From StudentWhere Sname Not Like '张%';





Comments NOTHING