文档介绍:查询与更新
数据定义
操作对象
操作方式
创建
删除
修改
数据库
Create database
Drop database
Alter database
表
Create table
Drop table
Alter table
视图
Create view
Drop view
索引
Create index
Drop view
创建表
Create table <表名>
(<列名> <数据类型> [列完整性约束条件]
[,<列名> <数据类型> [列完整性约束条件]]…
[,表级完整性约束条件])
Create table student(Sno CHAR(5) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(1),
Sage INT,
Sdept CHAR(15));
表级完整性约束包括:
Primary key 名(字段[,字段2])
foreign key 名 reference 表2(字段[,字段2])
Check 名内容
default
,PRIMARY KEY R(Sno));
其他约束举例
Create table SC(
Sno CHAR(5) FOREIGN KEY REFERENCE student(Sno),
Cno CHAR(6) FOREIGN KEY REFERENCE o),
Grade INT DEFAULT 0,
PRIMARY KEY (o) ) ;
Create table course(
Cno char(6) primary key,
Cname char(10) not null unique,
Cpno char(6),
Ccredit INT,
constraint c1 redit>0);
课堂练习
创建教材P74页第5题的SPJ数据库(包括表,表的主码,外码)
修改表P增加两个约束:
weight>1
Color的默认值是‘红’
查询语句的完整格式
Select [all | distinct] <目标列表达式> [别名][, <目标列表达式> [别名]]…
From <表名或视图名> [别名][, <表名或视图名> [别名]]…
Where <条件表达式>
Group by <列名> [having <条件表达式>]
Order by <列名1> [ASC | Desc] [, <列名1> [ASC | Desc]]
单表查询
查询选修了课程的学生学号,要求相同的学号只保留一个
Select distinct Sno from SC ;
查询计算机系全体学生的名单
Select * from Student where Sdept=‘CS’;
查询年龄在18-20岁之间的学生
Select * from Student where Sage between 18 and 20;
查询IS,MA和CS系的学生的姓名和性别
Select Sname, Ssex from student
where Sdept=‘IS’ or Sdept=‘MA’ or Sdept=‘CS’;
Select Sname,Ssex from student where Sdept in (‘IS’,’CS’,’MA’);
查询IS,MA和CS之外的其他系的学生的姓名和性别
Select Sname,Ssex from student where Sdept not in (‘IS’,’CS’,’MA’);
单表查询-模糊查询
查询所有姓刘的同学的姓名、学号和性别
Select Sname,Sno,Ssex
from student
Where Sname like ‘刘%’;
查询名字中第二个字是“华”的同学的姓名、学号和性别
Select Sname,Sno,Ssex
From student
Where Sname like ‘_ _ 华%’;
查询名字为DB_design的课程信息
Select * from course
ame like ‘DB\_design’ escape ‘\’;