没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
TopSage.com 大家学习网 1 / 12
SQL 语句学习手册实例版 ( 本人整理,用来查询 )
表操作
例 1对于表的教学管理数据库中的表 STUDENTS ,可以定义如下:
CREATETABLESTUDENTS
(SNO NUMERIC (6, 0) NOT NULL
SNAME CHAR (8) NOT NULL
AGE NUMERIC(3,0)
SEX CHAR(2)
BPLACECHAR(20)
PRIMARY KEY(SNO))
例 2对于表的教学管理数据库中的表 ENROLLS ,可以定义如下:
CREATETABLEENROLLS
(SNO NUMERIC(6,0)NOT NULL
CNO CHAR(4)NOT NULL
GRADE INT
PRIMARY KEY(SNO,CNO)
FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO)
FOREIGN KEY(CNO) REFERENCES COURSES(CNO)
CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)))
例 3根据表的 STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表。
CREATE TABLE GIRL
AS SELECT SNO, SNAME, AGE
FROM STUDENTS
WHERE SEX=' 女 ';
例 4删除教师表 TEACHER 。
DROPTABLETEACHER
例 5在教师表中增加住址列。
ALTER TABLE TEACHERS
ADD (ADDR CHAR(50))
例 6把 STUDENTS 表中的 BPLACE 列删除,并且把引用 BPLACE 列的所
有视图和约束也一起删除。
ALTER TABLE STUDENTS
DROP BPLACE CASCADE
例 7补充定义 ENROLLS 表的主关键字。
ALTER TABLE ENROLLS
ADD PRIMARY KEY (SNO,CNO) ;
视图操作(虚表)
更多精品在大家! http://www.topsage.com 大家网,大家的!
2 / 12 raw.doc TopSage.com
例 9建立一个只包括教师号、姓名和年龄的视图 FACULTY 。 ( 在视图定义中
不能包含 ORDER BY 子句 )
CREATE VIEW FACULTY
AS SELECT TNO, TNAME, AGE
FROM TEACHERS
例 10从学生表、课程表和选课表中产生一个视图 GRADE_TABLE , 它包括
学生姓名、课程名和成绩。
CREATE VIEW GRADE_TABLE
AS SELECTSNAME,CNAME,GRADE
FROMSTUDENTS,COURSES,ENROLLS
WHERESTUDENTS.SNO = ENROLLS.SNO AND
COURSES.CNO=ENROLLS.CNO
例 11删除视图 GRADE_TABLE
DROP VIEW GRADE_TABLE RESTRICT
索引操作
例 12在学生表中按学号建立索引。
CREATE UNIQUE INDEX ST
ON STUDENTS (SNO,ASC)
例 13删除按学号所建立的索引。
DROP INDEX ST
数据库模式操作
例 14创建一个简易教学数据库的数据库模式 TEACHING_DB ,属主为
ZHANG 。
CREATE SCHEMA TEACHING_DB AUTHRIZATION ZHANG
例 15删除简易教学数据库模式 TEACHING_DB 。(( 1 )选用
CASCADE ,即当删除数据库模式时,则本数据库模式和其下属的基本表、视
图、索引等全部被删除。( 2 )选用 RESTRICT ,即本数据库模式下属的基
本表、视图、索引等事先已清除,才能删除本数据库模式,否则拒绝删除。)
DROP SCHEMA TEACHING_DB CASCADE
单表操作
例 16找出 3 个学分的课程号和课程名。
SELECT CNO, CNAME
FROM COURSES
WHERE CREDIT = 3
例 17查询年龄大于 22 岁的学生情况。
SELECT*
FROM STUDENTS
WHEREAGE > 22
例 18 找出籍贯为河北的男生的姓名和年龄。
大家网,大家的! http://www.topsage.com 更多精品在大家!
TopSage.com 大家学习网 3 / 12
SELECT SNAME, AGE
FROM STUDENTS
WHERE BPLACE = ' 河北 ' ANDSEX = ' 男 '
例 19找出年龄在 20 ~ 23 岁之间的学生的学号、姓名和年龄,并按年龄升序
排序。 (ASC (升序)或 DESC (降序)声明排序的方式,缺省为升序。 )
SELECT SNO, SNAME, AGE
FROM STUDENTS
WHEREAGE BETWEEN 20 AND 23
ORDERBY AGE
例 20找出年龄小于 23 岁、籍贯是湖南或湖北的学生的姓名和性别。(条件比
较运算符=、< 和逻辑运算符 AND (与),此外还可以使用的运算符有:>
(大于)、>=(大于等于)、<=(小于等于)、<>(不等于)、 NOT
(非)、 OR (或)等。
谓词 LIKE 只能与字符串联用,常常是 “ <列名> LIKEpattern” 的格式。
特殊字符 “_” 和 “%” 作为通配符。
谓词 IN 表示指定的属性应与后面的集合(括号中的值集或某个查询子句的结
果)中的某个值相匹配,实际上是一系列的 OR (或)的缩写。谓词 NOT IN
表示指定的属性不与后面的集合中的某个值相匹配。
谓词 BETWEEN 是 “ 包含于 … 之中 ” 的意思。)
SELECT SNAME, SEX
FROM STUDENTS
WHEREAGE < 23ANDBPLACELIKE' 湖% '
或
SELECT SNAME, SEX
FROM STUDENTS
WHEREAGE < 23ANDBPLACEIN( ' 湖南 ' , ' 湖北 ' )
例 22找出学生表中籍贯是空值的学生的姓名和性别。(在 SQL 中不能使用条
件:<列名>= NULL 。在 SQL 中只有一个特殊的查询条件允许查询 NULL
值:)
SELECT SNAME, SEX
FROM STUDENTS
WHEREBPLACE IS NULL
多表操作
例 23找出成绩为 95 分的学生的姓名。(子查询)
SELECT SNAME
FROM STUDENTS
WHERE SNO =
(SELECT SNO
FROM ENROLLS
WHEREGRADE = 95)
例 24找出成绩在 90 分以上的学生的姓名。
更多精品在大家! http://www.topsage.com 大家网,大家的!
剩余11页未读,继续阅读
friendcao
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0