栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【数据库】期末必知必会-----第六章 实验部分

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【数据库】期末必知必会-----第六章 实验部分

第六章 实验部分

(这一部分是考试重点)

1、SQL语言的组成、特点?

组成:

1)DDL(数据库定义语言:CREAT、DROp、ALTER)

2)DML(数据库操纵语言:INSERT、UPDATE、DELETE、SELECT)

3)DCL(数据库控制语言:GRANT、REVOKE)

特点:

综合统一、高度非过程化、面向集合、语言简洁、易学易会

2、写SQL数据定义语句(创建删除数据库、数据表、会修改表结构)?

//创建数据库
CREATE DATABASE D1;
//删除数据库
DROP DATABASE D1;
//创建表
CREATE TABLE student(
 学号 char(4) NOT NULL PRIMARY KEY,
 姓名 char(8) NOT NULL,
 性别 char(2),
 出生日期 date,
 家庭住址 varchar(50)
);
//删除表
DROP TABLE student;

//修改表结构
ALTER TABLE grade 
ADD CONSTRAINT fk1 FOREIGN KEY(学号) REFERENCES student(学号);

ALTER TABLE grade 
ADD CONSTRAINT fk2 FOREIGN KEY(课程编号) REFERENCES curriculum(课程编号);

ALTER TABLE student
ADD 备注 varchar(50);
.......

3、写SQL查询(基本查询、条件怎么写;嵌套查询、连接查询、集合查询;order by、 group by,聚集函数都要会)?

//基本查询
SELECT 学号,姓名,出生日期 FROM student;
SELECt 姓名,家庭住址 FROM student WHERe 学号='0002';
SELECt 姓名,出生日期 FROM student
WHERe 出生日期>='2001-01-01' and 性别='女';

//条件查询
SELECt * FROM grade WHERe 分数 BETWEEN 70 AND 80;
SELECt AVG(分数) 平均分 FROM grade WHERe 课程编号='0002';
SELECt COUNT(*) 选课人数,COUNT(分数) 有成绩人数 FROM grade WHERe 课程编号
='0003';
SELECt 姓名,出生日期 FROM student WHERe 家庭住址 LIKE '杭州%'ORDER BY 出生
日期 DESC;
SELECt 学号,姓名 FROM student WHERe 姓名 LIKE '张%'

//嵌套查询
(
1)
SELECt 姓名,出生日期 FROM student
WHERe 性别=(SELECt 性别 FROM student WHERe 姓名='刘东阳');
(
2)
SELECt 学号,姓名,性别 FROM student
WHERe 学号 IN(SELECt 学号 FROM grade
WHERe 课程编号 IN ('0002','0005'));
(
3)
SELECt 课程编号,分数 FROM grade
WHERe 学号='0001' and 分数>ANY(SELECt 分数 FROM grade
WHERe 学号='0002');
(
4)
SELECt 课程编号,分数 FROM grade
WHERe 学号='0001' and 分数>ALL(SELECt 分数 FROM grade
WHERe 学号='0002');

//连接查询

(
1)SELECt s.学号,姓名,分数 FROM student s,grade g
WHERe s.学号=g.学号 and 分数 BETWEEN 80 AND 90;
(
2)
SELECt s.学号,姓名,分数 FROM student s INNER JOIN grade g
ON s.学号=g.学号 INNER JOIN curriculum c ON g.课程编号=c.课程编号
WHERe 课程名称='数据库原理及应用';
或
SELECt s.学号,姓名,分数 FROM student s , grade g,curriculum c
WHERe s.学号=g.学号 and g.课程编号=c.课程编号
and 课程名称='数据库原理及应用';
(
3)
SELECt s.学号,姓名,MAX(分数) 最高成绩
FROM student s,grade g
WHERe s.学号=g.学号
GROUP BY s.学号;
(
4)
SELECt s.学号,姓名,SUM(分数) 总成绩
FROM student s LEFT OUTER JOIN grade g ON s.学号=g.学号
GROUP BY s.学号;
注:outer 可以不写。
(
5)
insert into curriculum values('0006', 'Python', 3);
INSERT INTO grade VALUES('0004','0006',76);
SELECt g.课程编号,课程名称,count(学号) 选修人数
FROM grade g RIGHT OUTER JOIN curriculum c ON g.课程编号=c.课程编号
GROUP BY g.课程编号; 

4、要会写SQL数据更新语句(插入、修改、删除)?

//插入
INSERT INTO grade VALUES('0001','0001',80);
INSERT INTO grade VALUES('0001','0002',91);

//删除
DELETe FROM stu WHERe 学号='0004';

//修改
UPDATE stu SET 家庭住址='滨江市新建路 96 号' WHERe 学号='0002';

5、视图的概念,表和视图的区别?

概念:虚表,从一个或几个表中导出的表

区别:

1)视图是编译好的SQL语句

2)表有物理结构,视图无

3)表属于内模式,视图属于外模式

4)表是内容,试图是窗口

5)删除和创建视图不会影响表

6、创建、删除视图的语句?

//创建
CREATE VIEW <视图名>;

//删除
DROP VIEW <视图名>;

7、视图的作用?

1)提高了重用性,视图就像一个函数。
2) 对数据库重构,却不影响程序的运行。
3) 提高了安全性能。可以对不同的用户,设定不同的视图。
4) 让数据更加清晰。想要什么样的数据,就创建什么样的视图。

8、NULL的含义,用法?

含义:不知道、不存在、无意义

用法:

1)赋值,给某一个变量赋NULL值

2)判断,判断某一个变量是否为NULL

9、索引的概念,类型,作用,创建方法?

概念:是一个排序的列表,存储着索引值和这个值对应的物理地址

类型:聚集类,非聚集类

作用:加快查询的速率,加快表与表之间的连接

创建方法:

CREATE UNIQUE INDEX <索引名> ON grade(学号);

CREATE INDEX <索引名> ON grade(学号);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007051.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号