网站设计与维护
用 SQL建立数据库
教师:钱新杰
2004年 11月 9日
提问问题
?1、什么是数据库?
?2、什么是 DBMS?有什么功能?
?3、常用的几种数据模型是什么?
它们有何优缺点?
?4什么是主码?
?5、什么是域?
数据表的设计
一个表就是一种实体的集合,多个相关
的表就组成了一系列相连的实体类,从而
构成了网络功能的操作对象。
三个概念:
a、字段:标记实体属性的符号集
b、类型:对一种数据的取值范围,长度,
可在其上使用的操作特征定义的集合。
c、数据长度:在数据表中,用来存储数据
指明的空间。
设计数据表的了个步骤
A、建立表格及类容字段
B、为字段定义各种特征,主要指为各种字段定义起
数据类型,数据长度,是否为空等特征。
字段名称 类型名称 是否可空
NO Varchar(15)/pk N 学号
name Varchar(20) Y 姓名
sex bit N 性别
SQL语言的概述
SQL ( Structured Query Language)
即结构化查询语言。
由于它的功能丰富,语言简捷等
优点,从而成为了关系数据库的标准
语言。
SQL的特点
SQL语言集数据查询,数据操作,数据定
义和数据控制与一体,主要特点有:
A、综合统一
B、高度非过程化
C、面向集合的操作方式
D、以同一种语法结构提供两中使用方式
E、语言简捷,易学易用
SQL的特点
SQL 功能 动词
数据查询 select
数据定义 create,drop,alter
数据操纵 insert, update,delete
数据控制 grant, revoke、
定义基本表
一般格式为:
Create table <表名 >
(<列名 ><数据类型 >[列级完整性约束条 ]
[,<列名 ><数据类型 >][列级完整性约束条件 ]
…… );
例题
例 1 建立一个, 学生, 表 Student,它由学号
Sno、姓名 Sname、性别 Ssex、年龄 Sage、所在
系 Sdept五个属性组成。其中学号不能为空,值
是唯一的,并且姓名取值也唯一。
CREATE TABLE Student
(Sno CHAR(5)NOT NULL UNIQUE,
Sname CHAR(20)UNIQUE,
Ssex CHAR(1),
Sage INT,
Sdept CHAR(15));
修改基本表
一般格式为:
alter table <tablename>
[add <新列名 ><数据类型 >[完整性约束 ]]
[drop <完整性约束名 >]
[modify<列名 ><数据类型 >];
其中 <表名 >为要修改的基本表,add子句用于
增加新列和新的完整性约束条件,drop子句用于删
除指定的完整性约束条件,modify子句用于修改原
有的列定义。
例题
例 2:向 Student表增加“入学时间”列,其
数据类型为日期型。
alter table Student add Scome DATE;
例 3:将年龄的数据类型改为半字长整数。
alter table Student modify Sage smallint;
例 4:删除学生姓名必须取唯一值的约束。
alter table Student drop unique(Sname);
删除基本表
一般格式为:
DROP TABLE <表名 >;
例题 5:
删除 Student表
drop table Student;
数据查询
数据查询是数据库的核心操作。
一般格式为:
select [ALL|DISTINCT]<目标表达式 >[,<
目标表达式 >]……
from <表名或视图名 >[,<表名或视图名 >]……
[where <条件表达式 >]
[group by <列名 >[Having <条件表达式 >] ]
[order by <列名 >[ASC|DESC] ];
例题
学生 -课程数据库中包括以下三个表
学生表:
Student(Sno,Sname,Ssex,Sage,Sdept)
课程表:
Course(Cno,Cname,Cpno,Ccridet)
学生选课表:
SC(Sno,Cno,Grade)
例题
例题 6
查询全体学生的学号和姓名
select Sno,Sname
from Student;
练习一
查询全体学生的姓名、学号和系别
例题
? 例题 7
查询全体学生的详细记录
select *
from Student;
练习 2
本题的别的实现方法
例题
例题 8
查询学号为 95001的学生的详细情况
select *
from Student
where Sno like ‘95001’;
练习
查询计算机系年龄在 20岁以下的学生姓名
谢谢大家