第一篇:數(shù)據(jù)庫第三次實驗
南昌航空大學(xué)實驗報告
2018年5月30日
課程名稱:
數(shù)據(jù)庫原理
實驗名稱: 數(shù)據(jù)庫安全性 學(xué)號: 16206127 指導(dǎo)教師評定:
姓名: 周良 簽名:
一,實驗?zāi)康?/p>
1熟悉不同數(shù)據(jù)庫中的保護措施——安全性控制,重點實踐○
SQL SEVER的安全性機制,掌握SQL Sever中有關(guān)用戶、角色及操作權(quán)限等的管理方法。
二,實驗內(nèi)容
1,SQL Server的安全模式
(1)利用T-SQL添加SQL Sever賬號。
(2)利用T-SQL修改SQL Sever登陸賬號屬性。
(3)利用T-SQL刪除SQL Sever登陸賬號。
2,管理數(shù)據(jù)庫用戶
(1)利用T-SQL添加SQL Sever用戶。
(2)利用T-SQL刪除SQL Sever用戶。
3,管理數(shù)據(jù)庫角色
(1)利用T-SQL刪除用戶自定義角色,可以使用系統(tǒng)存儲過程sp_droprole刪除用戶自定義角色。
4,權(quán)限管理
(1)利用T-SQL管理權(quán)限
1語句授權(quán)?!?對象授權(quán)。○3收回授權(quán)?!鹑?,實驗步驟
exec sp_addlogin 'qh','qh','jxgl','english'
四,exec sp_password 'qh','qhqxzsly','qh' 五,六,alter login qh with password='123456' 七,八,exec sp_droplogin qh 九,十,drop login qh 十一,十二,use jxgl 十三,exec sp_grantdbaccess 'DESKTOP-7M8SQ9T','qh' 十四,exec sp_revokedbaccess qh 十五,十六,use jxgl;
十七,exec sp_addrole 'newrole'
十八,exec sp_addrolemember 'newrole','qh' 十九,二十,exec sp_droprole 'newrole' 二十一,二十二,use master
二十三,grant create database to qh 二十四,二十五,二十六,grant create table,create view to qh 二十七,二十八,grant select on s to qh,qxz,sly 二十九,三十,grant insert,delete on s to shen 三十一,三十二,grant update on s(age,dept)to shen 三十三,三十四,grant execute on sp_ins_s to shen 三十五,三十六,revoke create table,create view form sly 三十七,三十八,revoke select on s from qxz ,sly 四,實驗心得
通過此次實驗我了解了SQL Sever中有關(guān)用戶、角色及操作權(quán)限等的管理方法,同時也更加注重數(shù)據(jù)庫安全性方面的問題,我們創(chuàng)建的每一個數(shù)據(jù)庫都應(yīng)該考慮安全性問題,應(yīng)該為數(shù)據(jù)庫創(chuàng)建一些必要的角色,同時也要管理數(shù)據(jù)庫的權(quán)限方面,防止數(shù)據(jù)向外流失,或者被黑客盜用。
第二篇:數(shù)據(jù)庫實驗
實驗1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理數(shù)據(jù)庫 實驗內(nèi)容:
(1)使用SSMS(SQL Server Management Studio)加入實驗數(shù)據(jù)庫。(2)使用SSMS可視化建立、修改和刪除數(shù)據(jù)庫、表。(3)使用SSMS對數(shù)據(jù)庫進行備份和恢復(fù)。
(4)使用SSMS對表進行查詢、插入、修改、刪除。實驗步驟:
(1)加入School數(shù)據(jù)庫。(2)建立Test數(shù)據(jù)庫。
(3)在數(shù)據(jù)庫中建立人員表PERSON(P#,Pname,Page)。更改表設(shè)置P#為主鍵,增加屬性Ptype(類型是CHAR,長度是10)。
(4)用SSMS的查詢功能(新建查詢)對PERSON表進行查詢、插入、修改、刪除等操作:首先插入兩條記錄;修改第二條記錄;刪除第二條記錄。(5)備份Test數(shù)據(jù)庫。(6)刪除表PERSON。(7)恢復(fù)Test數(shù)據(jù)庫。(8)刪除Test數(shù)據(jù)庫。
第三篇:數(shù)據(jù)庫實驗
3.實驗步驟
在學(xué)生選課數(shù)據(jù)庫中實現(xiàn)其查詢操作,寫出T-SQL語句(注:學(xué)生選課數(shù)據(jù)庫為前三次實驗課所建立的數(shù)
據(jù)庫)
一、簡單查詢實驗
(1)查詢選修了課程的學(xué)生學(xué)號。
(2)查詢選修課程號為0101的學(xué)生學(xué)號和成績,并要求對查詢結(jié)果按成績降序排列,如果成績相同則按
學(xué)號升序排列。
(3)查詢選修課程號為0101的成績在80~90分之間的學(xué)生學(xué)號和成績,并將成績乘以系數(shù)0.8輸出。
二、連接查詢實驗
(1)查詢每個學(xué)生的情況以及他(她)所選修的課程。
(2)查詢選修離散散學(xué)課程且成績?yōu)?0分以上的學(xué)生學(xué)號、姓名及成績。
(3)查詢每一門課的間接先行課(即先行課的先行課)
三、嵌套查詢操作
(1)查詢0101課程的成績高于張林的學(xué)生學(xué)號和成績。
(2)查詢其他系中年齡小于計算機系年齡最大者的學(xué)生。
(3)查詢同王洪敏“數(shù)據(jù)庫原理”課程分數(shù)相同的學(xué)生的學(xué)號。
(4)查詢選修了全部課程的學(xué)生的姓名。
(5)查詢與學(xué)號為09001103的學(xué)生所選修的全部課程相同的學(xué)生學(xué)號和姓名。
(6)查詢至少選修了學(xué)號為09001103的學(xué)生所選修的全部課程的學(xué)生學(xué)號和姓名。
四、組合查詢和分組查詢
(1)查找選修“計算機基礎(chǔ)”課程的學(xué)生成績比此課程的平均成績大的學(xué)生學(xué)號、成績。
(2)查詢年齡大于女同學(xué)平均年齡的男同學(xué)姓名和年齡。
(3)列出各系學(xué)生的總?cè)藬?shù),并按人數(shù)進行降序排列。
(5)查詢選修計算機基礎(chǔ)和離散數(shù)學(xué)的學(xué)生學(xué)號和平均成績。
4、要求
請按題號依次作答,完成在word文檔中,寫明班級學(xué)號姓名,于周日之于周日之前發(fā)至xcf7@163.com,獨立完成,嚴禁抄
第四篇:數(shù)據(jù)庫實驗答案
實驗四
五、實驗方法和步驟:
1.向數(shù)據(jù)庫的USERS表空間添加一個大小為10M的數(shù)據(jù)文件userdata02.dbf。
Alter tablespace users add datafile ‘c:oracleoradataorcluserdata02.dbf’ size 10M;2.向數(shù)據(jù)庫的TEMP表空間添加一個大小為5N的臨時數(shù)據(jù)文件temp02.dbf。
Alter tablespace temp add tempfile’c:oracleoradataorcltemp02.dbf’ size 5M;3.修改userdata02.dbf為自動增長方式,每次增長512k,沒有限制大小。
Alter database datafile ‘c:oracleoradataorcluserdata02.dbf’ autoextend on next 512k maxsize unlimited;
4.取消userdata02.dbf的自動增長方式。
Alter database datafile ‘c:oracleoradataorcluserdata02.dbf’ autoextend off;5.將userdata02.dbf大小設(shè)置為8MB。
Alter database datafile ‘c:oracleoradataorcluserdata02.dbf’ resize 8M;6.將userdata02.dbf設(shè)置為脫機。
Alter database datafile ‘c:oracleoradataorcluserdata02.dbf’ offline;7.將userdata02設(shè)置為聯(lián)機。
Alter database datafile ‘c:oracleoradataorcluserdata02.dbf’ online;8.改變userdata02的名稱。
(1)alter tablespace users offline;
(2)將userdata02.dbf重命名為userdata002.dbf;(3)alter tablesace users rename datafile ‘c:oracleoradataorcluserdata02.dbf’,‘c:oracleoradataorcluserdata002.dbf’;(4)alter tablespace users online;
9.查詢數(shù)據(jù)文件信息(包括數(shù)據(jù)文件動態(tài)信息;數(shù)據(jù)文件詳細信息;臨時數(shù)據(jù)文件信息)。(1)select name,file#,status,checkpoint_change# from V$DATAFILE;
(2)select tablespace_name,bytes,autoextensible,file_name from DBA_DATA_FILES;(3)select tablespace_name,file_name,autoextensible from DBA_TEMP_FILES;
實驗五 表空間、段、區(qū)、塊的管理
五、實驗方法和步驟:
1.編輯一個腳本文件TEST,腳本文件內(nèi)容為創(chuàng)建一個永久性的Student表空間,區(qū)自動擴展,段采用手動管理方式,并執(zhí)行腳本文件。
Create tablespace student datafile ‘c:oracleoradataora404orcltbs1_1.dbf’ 2.為數(shù)據(jù)庫的student表空間添加一個大小為10MB的新的數(shù)據(jù)文件。
Alter tablespace student add datafile ‘c:oracleoradataora404orcltbs1_2.dbf’ size 10M 3.創(chuàng)建一個臨時表空間mytemp,并為臨時表空間添加一個大小為10MB的臨時數(shù)據(jù)文件。
Create temporary tablespace mytemp tempfile ‘c:oracleoradataora404orcltemp1_1.dbf’ size 20M extent management local uniform size 16M;
Alter tablespace mytemp add tempfile c:oracleoradataora404orltemp1_2.dbf’ size 10M 4.將student表空間新添加的數(shù)據(jù)文件的大小改為20MB。
Alter database datafile c:oracleoradataora404orcltbs1_2.dbf’ resize 20M 5.將studnet表空間設(shè)置為offline;再設(shè)置為online。Alter tablespace student offline;Alter tablespace student online;6.將student表空間設(shè)置為只讀狀態(tài)。Alter tablespace student read only;7.為student表空間創(chuàng)建一個回退段。
Create rollback segment student_roll tablespace student;8.刪除student表空間及其所有內(nèi)容。
Drop tablespace student including contents;9.查詢表空間基本信息。
Select tablespace_name, extent_management,a llocation_type, contents from DBA_TABLESPACE;10.查詢表空間數(shù)據(jù)文件信息。
Select file_name, blocks, tablespace_name from DBA_DATA_FILES;11.統(tǒng)計表空間空閑空間信息。
SELECT TABLESAPCE_NAME “TABLESPACE”, FILE_ID, COUNT(*)“PIECES”, MAX(BLOCKS)“MAXIMUM”, MIN(BLOCKS)“MINIMUM”, AVG(BLOCKS)“AVERAGE”, SUM(BLOCKS)“TOTAL” FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME, FILE_ID;
12.查詢表空間空閑空間大小。
SELECT TABLESPACE_NAME, SUM(BYTES)FREE_SPACES FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;
13.查詢scott用戶emp表的某個員工元組的物理地址(ROWID)。SELECT ROWID, EMPNO FROM SCOTT.EMP WHERE EMPNO=7369;
實驗六 模式對象管理—基礎(chǔ)表
五、實驗方法和步驟:
1、創(chuàng)建一個表
目標:創(chuàng)建一個名為STUDENT的表,該表有ID(學(xué)號)、NAME(姓名)、SEX(性別)、COURSE(課程)、SCORE(成績)字段,并保存在USER01表空間。
(1)在SQL*PLUS中執(zhí)行使用CREATE TABLE語句在某一表空間中創(chuàng)建STUDENTS表,并通過INSERT、SELECT、UPDATE、DELETE語句對表進行操作,各舉一例。(2)通過OEM控制臺新的表,并查看新表情況。Create table student(Id number primary key, Name varchar2(20), Sex char(1),Course varchar2(20), Score number(5,2))tablespace users
Insert into student(id)values(1);Select id from student;
Update student set id=2 where id=1;Delete from student where id=2;
2、創(chuàng)建一個臨時表
目標:創(chuàng)建一個名為TEMP01的事務(wù)級別臨時表,該表有ID(學(xué)號)、NAME(姓名)字段,并保存在temp表空間中。
Create global temporary table temp01(id number(2)primary key, name varchar(20))on commit delete rows;
3、修改表
目標:修改STUDENTS表的存儲參數(shù);為表分配新的存儲空間;添加一個新的列;設(shè)置列為無用狀態(tài)(UNUSED)。
(1)在SQL*PLUS中執(zhí)行ALTER TABLE語句修改STUDENTS表的存儲參數(shù)(修改pctfree和pctused分別為20和40)。
Alter table student pctfree 20;Alter table student ptused 40;
(2)在SQL*PLUS中執(zhí)行ALTER TABLE語句在STUDENTS表分配大小為400KB的新區(qū)。Alter table student allocate extent(size 400k);
(3)在SQL*PLUS中執(zhí)行ALTER TABLE語句在STUDENTS表新增加一個AGE列,列的類型為NUMBER(2)。Alter table student add(age number(2));
(4)在SQL*PLUS中執(zhí)行ALTER TABLE語句在將STUDENTS表中的AGE設(shè)置為無用狀態(tài)。Alter table student set unused(age);
4、截斷表
目標:刪除表STUDENTS中的所有記錄。
(1)在SQL*PLUS中執(zhí)行TRUNCATE TABLE語句刪除STUDENTS表中的所有記錄。Truncate table student;
(2)在SQL*PLUS中執(zhí)行SELECT語句查看STUDENTS表中的內(nèi)容。Select * from student;
5、查詢ORACLE數(shù)據(jù)庫的模式對象信息
目標:使用管理工具(SQL*PLUS或OEM)獲得有關(guān)數(shù)據(jù)庫模式對象的有關(guān)信息。
(1)用SCOTT帳戶登錄SQL*PLUS,顯示用戶,并通過用戶視圖USER_TABLES、USER_VIEWS、USER_INDEXS、USER_OBJECTS、USER_TRIGGERS、USER_SEQUENCES等模式對象信息。Show user
Select table_name from user_tables;Select view_name from user_views;Select index_name from user_indexes;Select object_name from user_objects;Select trigger_name from user_triggers;Select sequence_name from user_sequence;
(2)使用SCOTT帳戶登錄數(shù)據(jù)庫,在OME控制臺中查看SCOTT用戶的各種模式對象信息。
6、給表student表的nane列添加一個唯一值約束,并刪除該約束 Alter table student add constraint p_uk unique(name);Alter table student drop drop constraint p_uk;
實驗七 模式對象管理—視圖
五、實驗方法和步驟:
1、創(chuàng)建基礎(chǔ)表BOOKS,包含BOOK_ID,數(shù)字型,BOOK_NAME,可變長50位,AUTHOR,可變長20位,PRESS可變長50位,Price數(shù)字型,PUBLISH_DATE,日期型;并插入10條數(shù)據(jù)。Create table books(Book_id number primary key, Book_name varchar2(50)not null, Author varchar2(20), Press varchar2(50), Price number, Publishdate date);
2、關(guān)系視圖
(1)建立關(guān)系視圖V_BOOKS,包含書名、作者、出版社。Create view v_books as
Select book_id 編號,author 作者,press 出版社
from books;(2)查看視圖定義。
Select text from user_views where view_name=’VW_BOOKS’;(3)查看視圖內(nèi)容。
Select * from vw_books;
(4)修改視圖,增加一個列出版日期。
Create or replace view VW_BOOKS As
select book_id 編號,author 作者,press 出版社,publishdate 出版日期
from books;(5)向基礎(chǔ)表增加一個屬性列“價格”,數(shù)字型。查看視圖的可用性狀態(tài)。
alter table boks add price int;
Select object_name,status from user_objects where object_name=’VW_BOOKS’ and object_type=’VIEW’;
(6)重新編譯V_BOOKS視圖。再查看視圖的可用性狀態(tài)
alter view vw_books compile
Select object_name,status from user_objects where object_name=’VW_BOOKS’ and object_type=’VIEW’;(7)刪除該視圖。
drop view vw_books;
3、內(nèi)嵌視圖
(1)查詢價格由高到低處于前三位的書本信息,注意采用內(nèi)嵌視圖的方式實現(xiàn)。
select * from
(select book_id,book_name ,price from books
order by price desc)where rownum<=3;
(2)利用內(nèi)嵌視圖將所有書籍的價格增加10元。
update(select price from books)set price=price+10
實驗十 PL/SQL程序結(jié)構(gòu)
五、實驗方法和步驟:
1.在SQL*Plus中使用PL/SQL塊處理EMP表中職工號7788的職工,如果工資小于5000那么把工資更改為5000。
(1)首先采用SCOTT用戶登錄;(2)查詢7788員工的工資是多少;
(3)定義聲明塊和執(zhí)行塊,修改該員工工資;(4)再查詢該員工工資是多少; SQL>DECLARE
X NUMBER(7,2);BEGIN
SELECT sal INTO x FROM emp WHERE empno = 7788;
IF x < 5000
THEN UPDATE emp SET sal = 5000 WHERE empno = 7788;END IF;END;
2.利用三種循環(huán)控制結(jié)構(gòu)向表中插入150條記錄。(1)創(chuàng)建一張表,用來記錄循環(huán)指針的值;
Create table temp_table(num_col number, info_col char(10));(2)利用LOOP循環(huán)向表中插入前50條記錄; DECLARE
v_counter BINARY_INTEGER :=1;BEGIN
LOOP
INSERT INTO temp_table values(v_counter,’loop index’);
v_counter := v_counter+1;
EXIT WHEN v_counter>50;
END LOOP;END;
(3)利用WHILE循環(huán)向表中插入51-100條記錄; DECLARE
v_counter BINARY_INTEGER :=1;BEGIN
WHILE v_counter<100 LOOP
INSERT INTO temp_table values(v_counter,’loop index’);
v_counter := v_counter+1;
END LOOP;END;
(4)利用FOR循環(huán)向表中插入101-150條記錄; DECLARE
v_counter BINARY_INTEGER :=1;BEGIN FOR v_counter IN 101..150 LOOP
INSERT INTO temp_table values(v_counter,’loop index’);
END LOOP;END;
(5)查看表中的信息。
SLELECT * FROM TEMP_TABL
實驗十一 游標
五、實驗方法和步驟:
1.聲明顯式游標
聲明一個游標用來讀取基表EMP中部門號是20且工作為分析員的職工: DECLARE Cursor c1 IS
SELECT ename, sal, hiredate FROM emp WHERE deptno = 20 AND job = 'ANALYST';v_ename VARCHAR2(10);v_sal NUMBER(7,2);v_hiredate date;begin OPEN c1;
FETCH c1 INTO v_ename, v_sal, v_hiredate;CLOSE c1;end;
2.游標的應(yīng)用
(1)利用游標修改數(shù)據(jù),如果EMP中部門號是20,工作為分析員的職工工資小于5000,更改為5000: DECLARE CURSOR c1 IS
SELECT empno, sal, hiredate, rowid
FROM emp WHERE deptno = 20 AND job = 'ANALYST' FOR UPDATE OF sal;emp_record c1%ROWTYPE;BEGIN OPEN c1;LOOP
FETCH c1 INTO emp_record;EXIT WHEN c1%NOTFOUND;IF emp_record.sal <5000 THEN
UPDATE emp set sal = 5000 where empno = emp_record.empno;END IF;END LOOP;CLOSE c1;END;
(2)利用游標,如果部門是SALES,地址不是DALLAS的,地址更改為DALLAS;如果部門不是SALES,地址不是NEW YORK的,地址更改為NEW YORK: DECLARE CURSOR c1 IS SELECT dname, loc FROM dept FOR UPDATE OF loc;Dept_rec c1%ROWTYPE;BEGIN OPEN c1;LOOP
FETCH c1 INTO dept_rec;EXIT WHEN c1%NOTFOUND;
IF dept_rec.dname = 'SALES' AND dept_rec.loc!= 'DALLAS'
THEN UPDATE dept SET LOC = 'DALLAS' WHERE CURRENT OF C1;ELSE IF DEPT_REC.DNAME!= 'SALES' AND DEPT_REC.LOC!= 'NEW YORK' THEN UPDATE dept SET LOC = 'NEW YORK' WHERE CURRENT OF C1;END IF;END LOOP;CLOSE c1;END;
實驗十二 存儲過程和函數(shù)
1.編寫一個存儲過程,用它顯示scott.dept、scott.emp表中各部門的名稱、員工總
數(shù)以及員工的工資總和和平均工資。
set serverout on;
create or replace procedure outputEMP as begin declare
cursor cEMP is
select dname,count(*),avg(sal),sum(sal)
from scott.emp,scott.dept
where scott.emp.deptno=scott.dept.deptno
group by dname;
d_name varchar2(14);
count_EMP number;
sum_sal number(7,2);
avg_sal number(7,2);
begin
open cEMP;
fetch cEMP into d_name,count_EMP,avg_sal,sum_sal;
while cEMP %found loop
dbms_output.put_line(d_name||','||count_EMP||','||avg_sal||','||sum_sal);
fetch cEMP into d_name,count_EMP,avg_sal,sum_sal;
end loop;
close cEMP;
end;
end outputEMP;2.編寫一個函數(shù),用它計算0到指定數(shù)字(作為函數(shù)輸入?yún)?shù))之間的整數(shù)和。set sertverout on;
create or replace function get_sum(maxNUM number)return number as begin
declare sumNUM number;
i number;
begin
sumNUM:=0;
i:=maxNum;
while i>0 loop
sumNUM:=sumNUM+i;
i:=i-1;
end loop;
return sumNUM;
end;end get_sum;
實驗十三 觸發(fā)器
1.編寫一個觸發(fā)器,用它把數(shù)據(jù)庫系統(tǒng)的關(guān)閉事件記錄到一個表(表結(jié)構(gòu)自己設(shè)計)內(nèi)。Create table shutdown_log(shut_user varchar2(20),shut_time date,shut_action varchar2(20));
create or replace trigger shutdown_record before shutdown on database begin
insert into shutdown_log values(user,sysdate,'關(guān)閉數(shù)據(jù)庫');end;
2.編寫一個行觸發(fā)器,把emp表增、刪、改操作前后員工的姓名和工資前后變化情況顯示處理。create or replace trigger trg_emp_dml_row
Before insert or update or delete on scott.emp
For each row
Begin
If inserting then
Dbms_output.put_line(:new.empno||’ ’||:new.ename);
Elsif updating then
Dbms_output.put_line(:old.sal||’ ’||:new.sal);
Else
Dbms_output.put_line(:old.empno||’ ’||:old.ename);
End if;
End trg_emp_dml_row;
第五篇:Access數(shù)據(jù)庫實驗
實驗一 ACCESS之表的操作
一、實驗?zāi)康?/p>
1、熟悉Access用戶操作界面。
2、掌握創(chuàng)建表的方法。
3、掌握創(chuàng)建主鍵和索引的方法。
4、掌握表結(jié)構(gòu)的編輯和表中數(shù)據(jù)的操作方法。
5、掌握建立表間關(guān)系的方法。
二、實驗內(nèi)容及步驟
1、用“數(shù)據(jù)庫向?qū)А眲?chuàng)建“教師教學(xué)信息”教學(xué)庫 步驟:
1)啟動Access,出現(xiàn)一啟動對話框;
2)單擊“新建數(shù)據(jù)庫”下的“Access數(shù)據(jù)庫向?qū)?、?shù)據(jù)頁和項目”單選項;
3)單擊“確定”按鈕,出現(xiàn)“新建”對話框,選擇“數(shù)據(jù)庫”選項卡,在列表框中選擇“講座管理”模板; 4)單擊“確定”按鈕,出現(xiàn)“文件新建數(shù)據(jù)庫”對話框。輸入數(shù)據(jù)庫文件名“教師教學(xué)信息”,單擊“創(chuàng)建”按鈕,出現(xiàn)“數(shù)據(jù)庫向?qū)А睂υ捒颍?/p>
5)單擊“下一步”按鈕,出現(xiàn)“數(shù)據(jù)庫向?qū)А睂υ捒?。在此對話框中,從左邊的“?shù)據(jù)庫中的表”列表框中選擇要建立的表名稱,并在右邊的“表中的字段”列表框中選擇需要的字段,在此任選,后面再修改; 6)單擊“下一步”按鈕,在“數(shù)據(jù)庫向?qū)А睂υ捒蛑羞x擇“標準”顯示樣式; 7)單擊“下一步”按鈕,在“數(shù)據(jù)庫向?qū)А睂υ捒蛑羞x擇“組織”打印報表樣式; 8)單擊“下一步”按鈕,輸入數(shù)據(jù)庫標題名“教師教學(xué)信息” 9)單擊“下一步”按鈕,然后單擊“完成”,就可在數(shù)據(jù)庫中得到一些表、窗體、查詢和報表等對象。
2、在“教師教學(xué)信息”數(shù)據(jù)庫中建立三個表,分別為系(部門)表,其中有三個字段即系(部門)ID、系(部門)名稱和系(部門)編號;教師情況一覽表,其中有七個字段即教師ID、教師姓名、出生年月、性別、職稱、工資和系(部門)ID;教師任課表,其中有七個字段即課程ID、課程名稱、系(部門)ID、教師ID、學(xué)分、學(xué)時和考試類型。并在表中輸入數(shù)據(jù)。
1)使用向?qū)?chuàng)建“系(部門)表”,并在表中輸入數(shù)據(jù)。步驟:
(1)在“Microsoft Access”窗口中打開“文件”菜單,選擇“打開”命令,進入“打開”窗口。(2)選擇“教師教學(xué)信息”數(shù)據(jù)庫,單擊“打開”按鈕;
(3)在“教師教學(xué)信息”數(shù)據(jù)庫窗口中,選擇“表”對象,并在列表框中選擇“使用向?qū)?chuàng)建表”。(4)單擊“新建”按鈕,出現(xiàn)“新建表”對話框,選擇“表向?qū)А薄?/p>
(5)單擊“確定”按鈕,出現(xiàn)“表向?qū)А睂υ捒?。在“示例表”列表框中選擇“學(xué)生”表,然后在“示例字段”列表框中選擇“學(xué)生ID”、“名字”和“學(xué)號”,并添加到“新表中的字段”列表框中。
(6)單擊“重命名字段…”按鈕,出現(xiàn)一對話框,將原字段名“學(xué)生ID”改成“系(部門)ID”,單擊“確定”按鈕。依次重復(fù)第6步,直到將“名字”改為“系(部門)名稱,”學(xué)號“改為”系(部門)編號“。
(7)單擊”下一步“,出現(xiàn)”表向?qū)А皩υ捒?,在”請指定表的名稱“文本框中輸入表的名稱”系(部門)表“。(8)單擊”下一步“,選擇”不相關(guān)“。
(9)單擊”下一步“,選擇”直接向表中輸入數(shù)據(jù)“。
(10)單擊”完成“,即可輸入數(shù)據(jù)創(chuàng)建一個”系(部門)表“。2)重復(fù)用”表向?qū)А皠?chuàng)建”系(部門)表“的過程步驟,可以用”表向?qū)А敖ⅰ苯處熐闆r一覽表“和”教師任課表“。當(dāng)然也可以利用”輸入數(shù)據(jù)“創(chuàng)建表和使用”表設(shè)計器“創(chuàng)建表。
3、在三個表中創(chuàng)建主鍵和索引。1)創(chuàng)建主鍵 步驟:
(1)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中選擇”表“對象,在列表框中選擇”系(部門)表“。然后單擊”設(shè)計“按鈕,進入表的結(jié)構(gòu)設(shè)計窗口。
(2)選定”系(部門)ID“,右擊,在彈出的菜單中選”主鍵“命令即可。
利用以上方法在”教師情況一覽表“中將”教師ID“創(chuàng)建為主鍵,在”教師任課表“中將”課程ID“創(chuàng)建為主鍵。2)創(chuàng)建索引 步驟:
(1)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中選擇”表“對象,在列表框中選擇”系(部門)表“。然后單擊”設(shè)計“按鈕,進入表的結(jié)構(gòu)設(shè)計窗口。
(2)選定”系(部門)ID“,然后打開”索引“下拉框,選擇”有(無重復(fù))“選項。(3)保存表即可。
利用以上方法在”教師情況一覽表“中以”教師ID“字段來創(chuàng)建索引,在”教師任課表“中以”課程ID“字段來創(chuàng)建索引。
4、創(chuàng)建表間關(guān)系。
1)在”教師情況一覽表“與”教師任課表“之間建立”一對多“的關(guān)系 步驟:
(1)關(guān)閉其他打開的窗口,只留下”教師教學(xué)信息“數(shù)據(jù)庫窗口。
(2)打開”工具“,選擇”關(guān)系“,進入”關(guān)系“窗口,同時彈出”顯示表“對話框。(3)在”顯示表“對話框中,選擇”教師情況一覽表“和”教師任課表“,單擊”添加“。
(4)在”關(guān)系“窗口中,將”教師情況一覽表“中的”教師ID“拖到”教師任課表“中”教師ID“位置,彈出”編輯關(guān)系“對話框。
(5)單擊”創(chuàng)建“后,關(guān)閉”關(guān)系“窗口,屏幕提示是否保存關(guān)系布局的更改,單擊”是“即可。
2)利用以上方法可在”教師任課表“與”系(部門)表“之間建立”一對多“的關(guān)系,在”教師情況一覽表“與”系(部門)表“之間建立”一對多“的關(guān)系。
四、實驗體會及建議
請寫出實驗后的體會和建議。
實驗二 ACCESS之查詢操作
一、實驗?zāi)康?/p>
1、掌握使用”向?qū)А昂褪褂谩痹O(shè)計器“創(chuàng)建”選擇查詢“的方法。
2、掌握使用”向?qū)А昂褪褂谩痹O(shè)計器“創(chuàng)建”交叉表查詢“的方法。
3、掌握使用”設(shè)計器“創(chuàng)建”參數(shù)查詢“的方法。
4、掌握使用”設(shè)計器“創(chuàng)建”更新查詢“的方法。
5、掌握使用”設(shè)計器“創(chuàng)建”SQL查詢“的方法。
二、實驗內(nèi)容及步驟
1、用”選擇查詢“創(chuàng)建”教師情況查詢“ 步驟:(使用”設(shè)計器“)
1)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中,選擇”查詢“對象,然后單擊”新建“按鈕,出現(xiàn)”新建查詢“對話框。選擇”設(shè)計視圖“后,”確定“,進入”選擇查詢“窗口,同時彈出”顯示表“對話框。2)選擇”表“選項卡,在列表框中雙擊”教師情況一覽表“,單擊”關(guān)閉“。
3)在”選擇查詢“窗口中,從”教師情況一覽表“字段列表框中選擇”教師ID“、”教師姓名“、”出生年月“和”工資“4個字段,分別用鼠標左鍵拖到下面的字段屬性框中,并在字段屬性框中將”出生年月“字段的”排序“屬性設(shè)置為”升序“,然后單擊”運行“按鈕,即可在”教師情況一覽表“中創(chuàng)建”教師情況查詢“。
4)單擊”保存“,出現(xiàn)”另存為“對話框,在”查詢名稱“框中輸入”教師情況查詢“,單擊”確定“,結(jié)束操作。
2、用”交叉表查詢“創(chuàng)建”每個系各門課程學(xué)時“ 步驟:(使用”設(shè)計視圖“)
1)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中,選擇”查詢“對象,并在列表框中雙擊”在設(shè)計視圖中創(chuàng)建查詢“,出現(xiàn)”顯示表“對話框。
2)選擇”表“選項卡,然后在列表框中選擇”教師任課表“和”系(部門)表“,單擊”添加“,把這兩個表添加到”選擇查詢“窗口中,單擊”顯示表“對話框中的”關(guān)閉“。3)打開”查詢“菜單,選”交叉表查詢“。
4)在”交叉表查詢“設(shè)計窗口中,從上面的”系(部門)表“字段列表框中選字段”系(部門)名稱“,按住鼠標左鍵把”系(部門)名稱“字段拖到下面的字段屬性框中,然后在”教師任課表“中選擇字段”課程名稱“和”學(xué)時“,再用鼠標左鍵把它們拖到下面的字段屬性框中。在下面的字段屬性框中,將”系(部門)名稱“字段設(shè)為”列標題“,將”課程名稱“字段設(shè)為”行標題“,將”學(xué)時“字段設(shè)為顯示”值“,單擊”運行“,即可完成查詢每個系各門課程的學(xué)時。
5)單擊”保存“,出現(xiàn)”另存為“對話框,在”查詢名稱“框中輸入”每個系各門課程學(xué)時“,單擊”確定“,結(jié)束操作。
3、創(chuàng)建”參數(shù)查詢“ 步驟:(通過”插入“菜單命令)
1)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中,選”查詢“對象。打開”插入“菜單,選”查詢“命令。2)在”新建查詢“對話框中,選”設(shè)計視圖“,”確定“后出現(xiàn)”顯示表“對話框。3)選”表“選項卡,在列表框中雙擊”教師任課表“,單擊”顯示表“中的”關(guān)閉“。
4)在”選擇查詢“窗口中,從上面的”教師任課表“字段列表框中選字段”課程名稱“和”考試類型“,按住鼠標左鍵將這兩個字段分別拖到下面的字段屬性框中,然后在”課程名稱“的”準則“屬性欄中輸入”[請輸入課程名稱:]“。
5)單擊”運行“,出現(xiàn)”輸入?yún)?shù)值“對話框,在”請輸入課程名稱:“框中輸入”C++語言“,單擊”確定“,即可得到查詢結(jié)果。
6)單擊”保存“,出現(xiàn)”另存為“對話框,在”查詢名稱“框中輸入”參數(shù)查詢考試類型“,單擊”確定“,結(jié)束操作。7)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中,選”查詢“對象,在列表框中雙擊”參數(shù)查詢考試類型“,出現(xiàn)”輸入?yún)?shù)值“對話框。在”請輸入課程名稱“框中輸入”高等數(shù)學(xué)“,單擊”確定“,即可得到查詢結(jié)果。8)重復(fù)第7步,可查詢?nèi)我庹n程的”考試類型“。
4、創(chuàng)建”更新查詢“ 步驟:(通過”查詢“菜單命令)
1)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中,選”查詢“對象。打開”插入“菜單,選”查詢“。2)在”新建查詢“對話框中,選”設(shè)計視圖“,”確定“。
3)在”顯示表“對話框中,選”表“選項卡,在列表框中雙擊”教師情況一覽表“,將其字段列表框添加到”選擇查詢“窗口中,單擊”關(guān)閉“。
4)在”選擇查詢“窗口中,打開”查詢“菜單,選”更新查詢“。
5)在”更新查詢“窗口中,從上面的”教師情況一覽表“字段列表框中選字段”工資“,按住鼠標左鍵把它拖到下面的字段屬性框中,然后在”工資“的”準則“屬性欄中輸入”<1000“,在”工資“的”更新到“屬性欄中輸入”[工資]+100“。打開”視圖“菜單,選”數(shù)據(jù)表視圖“命令,可看到更新前的”工資“情況。6)單擊”運行“,即可創(chuàng)建”更新查詢“。打開”視圖“菜單,選”數(shù)據(jù)表視圖“命令,可看到更新后的”工資“情況。
5、用”SQL查詢“創(chuàng)建一個”課程信息表“ 步驟:(通過”視圖“菜單命令)
1)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中,選”查詢“對象,單擊”新建“按鈕,進入”新建查詢“窗口。在該窗口中選”設(shè)計視圖“,”確定“后進入”顯示表“對話框,將其關(guān)閉。
2)在”選擇查詢“窗口打開”視圖“下拉菜單,并選”SQL視圖“命令。3)在”SQL視圖“窗口中,輸入創(chuàng)建一個”課程信息表“的SQL語句。CREATE TABLE 課程信息表([課程編號] integer not null, [課程名稱] text, [學(xué)時] integer, [考試類型] text)4)單擊”運行“,即可創(chuàng)建”SQL查詢“。
5)單擊”保存“,出現(xiàn)”另存為“對話框。在”查詢名稱“框中輸入”課程信息表SQL查詢“,”確定“后,結(jié)束操作。6)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中,選”表“對象,然后在列表框中雙擊”課程信息表“,此時是一個空表,可在該表中輸入數(shù)據(jù)。
7)要在”課程信息表“中增加一個新字段”學(xué)分“,要用到修改表結(jié)構(gòu)SQL語句”ALTER TABLE“。重復(fù)第一步和第二步,打開”SQL視圖“窗口。
8)在此窗口中輸入增加新字段的語句,即ALTER TABLE 課程信息表 ADD 學(xué)分 INTEGER,單擊”運行“。
9)在”教師教學(xué)信息“數(shù)據(jù)庫窗口中,選”表“對象,然后在列表框中雙擊”課程信息表“,可以見到修改后的”課程信息表“,”學(xué)分“字段已經(jīng)被增加到”課程信息表"中。