文章目录
零、相关简介
SQL语言是一种专门用于关系型数据库的编程语言,它提供了一种高效、灵活的数据管理方式。通过SQL,用户可以轻松地进行数据查询、数据操纵、数据定义和数据控制等操作。
SQL语言的主要特点包括:
- 数据查询:SQL语言提供了强大的数据查询功能,用户可以通过简单的语句来获取所需的数据。例如,使用SELECT语句可以从一个或多个表中检索数据,根据需要进行排序、分组和过滤。
- 数据操纵:SQL语言允许用户对数据库中的数据进行增、删、改等操作。例如,使用INSERT语句可以向表中添加新数据,使用DELETE语句可以删除表中的数据,使用UPDATE语句可以更新表中的数据。
- 数据定义:SQL语言提供了创建、修改和删除数据库对象的功能。例如,使用CREATE语句可以创建表、索引、视图等数据库对象,使用ALTER语句可以修改数据库对象的结构,使用DROP语句可以删除数据库对象。
- 数据控制:SQL语言提供了对数据库访问权限的控制功能。例如,使用GRANT语句可以为用户分配权限,使用REVOKE语句可以收回用户的权限。
- 事务管理:SQL语言支持事务处理,确保数据的完整性和一致性。用户可以使用BEGIN语句开始一个事务,使用COMMIT语句提交事务,使用ROLLBACK语句回滚事务。
- 嵌入式应用:SQL语言可以嵌入到其他编程语言中使用,如C、Java、Python等,为应用程序提供数据库操作功能。
- 可移植性:SQL语言是一种标准化的语言,不同厂商的数据库管理系统都支持SQL。这使得用户可以在不同的数据库系统之间轻松迁移和切换。
- 性能优化:SQL语言提供了多种优化技术,如索引、视图、存储过程等,可以提高数据库查询和操作的性能。
- 安全性:SQL语言提供了严格的安全机制,确保数据库中的数据安全和隐私。
- 灵活性:SQL语言提供了丰富的函数和操作符,用户可以根据需要编写复杂的查询和操作语句。
- 易学易用:SQL语言的语法简单明了,易于学习和使用。通过学习基本的SQL语句,用户就可以进行大部分数据库操作。
- 广泛的应用:SQL语言被广泛应用于各种行业和领域,如金融、电信、医疗、教育等,成为数据处理和管理的重要工具。
总之,SQL语言是一种功能强大、灵活易用的关系型数据库编程语言。它提供了丰富的数据管理功能,可以帮助用户高效地处理和管理大量数据。通过学习和掌握SQL语言,用户可以更好地利用数据库技术来解决实际问题。
一、 实验目的和要求
(1) 通过上机实践,熟悉Oracle的SQL * Plus环境及使用方法
(2) 掌握SQL语言,能熟练运用SQL语言进行数据定义和数据操纵
(3) 加深对关系数据模型的数据结构和约束的理解
二、实验环境(实验设备)
硬件:微型计算机
软件:Windows 操作系统、ORACLE 10G
三、实验原理及内容
实验原理基于第二、三、五章的相关内容。
实验内容如下:
1、了解并掌握SQL*Plus环境的使用
(1) 以管理员身份登录到Oracle SQL*Plus;
(2) 以学号为用户名创建一个用户,并授予其权限;
(3) 管理员退出Oracle,重新用新创建的用户登录Oracle。
create user wer identified by wer123;
Grant dba to wer;
Connect wer/wer123
- 创建用户
2、用SQL的DDL语句图书管理系统创建基表
CREATE TABLE Book(
BookId CHAR(4),
Class CHAR(10),
BookName CHAR(50),
Author CHAR(25),
Publish CHAR(25),
Price FLOAT(4),
PRIMARY KEY(BookId));
创建读者表
CREATE TABLE Reader(
ReaderId CHAR(4),
ReaderName CHAR(20),
COMPANY CHAR(50),
POSITION CHAR(20),
PRIMARY KEY(ReaderId));
创建图书借阅表
CREATE TABLE BR(
Book CHAR(4),
Reader CHAR(4),
BookDATE DATE,
OTHER CHAR(50),
FOREIGN KEY(Book) REFERENCES Book(BookId),
FOREIGN KEY(Reader) REFERENCES Reader(ReaderId));
3、为基表“读者”补充定义:职称只能取初级、中级、高级之一。
ALTER TABLE Reader ADD CHECK(POSITION IN('初级', '中级', '高级'));
4、用SQL的DML语句向上述基表中增加、修改和删除数据
(1) 向三个基表中插入数据
1向书表中插入元组
INSERT INTO Book VALUES ('0001','TP31','计算机基础','WANG','高等教育',12.00);
INSERT INTO Book VALUES ('0002', 'TP32','数据库原理', NULL,NULL,16.50);
INSERT INTO Book VALUES ('0003','TN31','并行计算机','YANF','清华大学',12.80);
INSERT INTO Book VALUES ('0004','TP34','大型数据库','XIA','高等教育',25.00);
INSERT INTO Book VALUES ('0005','TN30','INTER多核程序设计','SUN','高等教育',11.23);
INSERT INTO Book VALUES ('0006','TP30','数据结构',NULL,NULL,100);
2向读者表中插入四个元组
INSERT INTO Reader VALUES ('T201','张三','计算机系','中级');
INSERT INTO Reader VALUES ('S981','李四','通信系','高级');
INSERT INTO Reader VALUES ('Z003','王五','工厂','初级');
INSERT INTO Reader VALUES ('L001','赵六','计算机系','高级');
INSERT INTO Reader VALUES ('qwer', 'll', 'CS', '初级');
3向图书借阅表中插入借阅数据
INSERT INTO BR VALUES ('0001', 'Z003', '2022-3-3', NULL);
INSERT INTO BR VALUES ('0001', 'T201', '2022-3-6', NULL);
INSERT INTO BR VALUES ('0005', 'L001', '2022-4-11', NULL);
(2) 数据的修改和删除
①
UPDATE Book SET AUTHOR='Yan', PUBLISH='高等教育' WHERE BookId=0001;
可以看见两张图片的Author由WANG变为了Yan
②
UPDATE Book SET CLASS='TP50' WHERE BookName LIKE '数据库原理';
可以发现前后两张图片书名为《数据库原理》的Class由TP31变为TP50
③
UPDATE Book SET Price=Price*1.10;
可以发现前后两张图片所有图书的价格变为原来的1.1倍。
④
UPDATE Book SET Price=Price*1.10;
前后两张图片可以发现,借阅记录中读者为L001的所有记录均被删除。
5、用SQL的QL语句完成查询
(1)
SELECT BookName, Author FROM Book;
(2)
SELECT * FROM Book WHERE Price>ALL(SELECT Price FROM Book WHERE Author='Yan') ;
(3)
SELECT MAX(Price),MIN(Price),AVG(Price) FROM Book GROUP BY Author;
(4)
SELECT BookDATE FROM BR;
6.用SQL的DDL语句创建视图、索引
在以下序号后分别写出对应的SQL语句
(1)
CREATE VIEW V1(COMP,R_NUM,BORROW_NUM) AS SELECT Reader.ReaderID, COUNT(DISTINCT Book.BookName), COUNT (Book.BookName) FROM Book, BR, Reader WHERE Book.BookName=BR.Book GROUP BY Reader.ReaderName;
(2)
SELECT * FROM V1;
(3)
CREATE INDEX I1 ON Book(PUBLISH DESC);
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
(一)实验中遇到的主要问题及解决方法
(1)如何切换数据库的问题,解决方法是进入系统后,输入命令SHOW DATABASES;显示所有的数据库,然后输入命令USE DATABASENAME; DATABASENAME是我们要是用的数据库的名字。
(2)向表中插入一个元组后,如果在插入一个相同主键的元组,会失败,如果不想挨个替换除主键之外的每个值,可以先删除该元组,然后重新插入。使用命令TRUNCATE TABLE TABLENAME;TABLENAME是表名,可以清空当前的表。
(二)实验心得
(1)熟悉了SQL基本操作,基本语法。
(2)学会了如何创建用户,切换不同的用户登录。
(3)学会了如何增删改查数据,创建视图。