sql01单表

DDL

创建数据库:

创建Table

由[]括起来的可以省略, |表示隔开的两项可选其一

  • 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)

DML

向表中追加元组

检索

Select 列名 from 表名 where 检索条件;

select相当于投影,where相当于sigma,为检索条件

示例:检索学生表中所有年龄小于等于19岁的学生的年龄及姓名

结果唯一性问题

在Table中要求无重复元组是通过定义Primary Key或Unique来保证的,而在检索结果中要求无重复元组,是通过distinct保留字的使用来实现的。

示例:在选课表中,检索成绩大于80分的所有学

如果有同学两门课程大于80,那么重复,解决办法:

结果排序

DBMS可以对检索结果进行排序,可以升序排列,也可以降序排列

Select语句中结果排序是通过order by子句实现的

示例:按学号由小到大显示所有学生的学号和姓名

示例:检索002号课大于80分的所有同学学号并按成绩由高到低顺序显示

模糊查询

在Select语句中,通过检索条件中引入运算符like来表示

  • 含有like运算符的表达式

匹配规则:

  • % 匹配零个或多个字符
  • - 匹配任意单个字符
  • \ 转义字符,用于去掉一些特殊字符的特定含义,使其被作为普通字符看待

示例::检索所有姓张的学生学号及姓名

示例::检索不含姓张的学生姓名


立志做一名攻城狮