1. 熟悉mysql的完整性約束技術。
2. 了解mysql的違反完整性處理措施。
3. 了解登入賬戶的管理理念與具體方法。
4. 了解資料庫使用者的管理的要則。
5. 了解使用者許可權管理的內涵與方法。
mysql、sqlyog
向員工表中插入記錄,驗證主碼不能為空且不能重複。
insert departments
values (01,'資訊部','李四','北京','010110');
insert employees
values (1001,'張三',20,'技工',5000,01); #正常新增
insert employees
values ('','張三',20,'技工',5000,01); #主碼不能為空
insert employees
values (1001,'張三',20,'技工',5000,01); #主碼不能重複
向員工表中插入記錄,驗證工種名稱不能取空值。
insert employees
values (1002,'李四',20,'',50000,01);
向員工表中插入記錄,不用給工資賦值,檢視是否有預設值。
insert employees (employee_id,employee_name,age,job_title,department_id)
values (1002,'李四',20,'經理',01);
select * from employees
where employee_id=1002;
向員工表中插入記錄,驗證外碼的值必須是其所參照的主碼的值。
insert employees
values (1003,'王五',21,'技工',6000,02);
向部門表中插入記錄,驗證**號碼是否能取重複值。
insert departments
values (02,'後勤部','小明','北京','010110');#**號碼不可取重複值
向兩張表中分別插入一條記錄,如下,刪除部門表中新插入的記錄,能否正常刪除?若不能,該怎麼處理?(違約處理,可級聯置空或刪除;可先刪外來鍵定義,再重新新增外來鍵定義)
insert into departments
values(10, '研發部', '張時', '上海', 1361111111);
insert into employees
values(100, '李麗莎', 30, '軟體工程師', 10000, 10);
delete from departments
where department_id=10; #傳統辦法無法正常刪除
#show create table employees
#先刪除表級約束
alter table employees drop foreign key employees_ibfk_1;
#再新增級聯刪除
alter table employees
add foreign key(department_id) references departments(department_id)
on delete cascade;
#即可刪除資料
delete from departments
where department_id=10;
向兩張表中分別插入一條記錄,如下,更新部門表中新插入的記錄,將部門號更改為99,能否正常更改?若不能,該怎麼處理?(違約處理,可級聯置空或更新;可先刪外來鍵定義,再重新新增外來鍵定義)
insert into departments
values(30, '人事部', '張琳', '福建', 1361111112);
insert into employees
values(110, '李莎', 30, '會計', 6000, 30);
alter table employees drop foreign key employees_ibfk_1;
alter table employees
add foreign key(department_id) references departments(department_id)
on update cascade;
update departments
set department_id=99
where department_id=30
新增兩個新使用者,user1的密碼為1234,只能通過本地訪問,user2的密碼為adcd,可以任意電腦進行鏈結訪問。點選"建立新連線 ctrl+m"開啟登入介面,分別以user1和user2身份登入mysql伺服器,試執行create database test,能否成功?
create user
'user1'@'localhost' identified by '1234',
'user2' identified by 'adcd';
無法成功
使用grant語句建立乙個新使用者user3,密碼為1234,可以任意電腦進行鏈結訪問,並授予庫myemployees所有資料表的select和update許可權,驗證該使用者是否可以查詢、更新、刪除?
create user 'user3'@'%' identified by '1234';
grant select,update
on myemployees.*
to 'user3'@'%';
以使用root身份將user1的密碼修改為1111,並驗證。
set password for 'user1'@'localhost' ='1111';
以使用user2身份將user1的密碼修改為1234,能否修改,為什麼?
無法修改,因為無許可權。
將查詢員工表資訊,修改員工表的工資授權給user1。
grant select,update(salary)
on myemployees.employees
to 'user1';
使用grant語句建立乙個新使用者user4,可以任意電腦進行鏈結訪問,密碼為"1234"。使用者user4對庫myemployees中所有的資料有查詢、插入許可權,並授予grant許可權。
create user 'user4'@'%' identified by '1234';
grant select,insert
on myemployees.*
to 'user4'@'%'
with grant option;
以user4身份登入,將對部門表的查詢許可權授予user2,驗證是否能將刪除許可權也授予給user2。
grant select
on myemployees.*
to 'user2'@'%'
with grant option;
**user2的所有許可權後再刪除user2的賬戶。
revoke all privileges,grant option from 'user2';
drop user 'user2';
通過本次實驗,我更加熟悉了mysql的完整性約束技術,了解了mysql的違反完整性處理措施,了解了登入賬戶的管理理念與具體方法,了解資料庫使用者的管理的要則,了解使用者許可權管理的內涵與方法。收穫頗豐。
資料庫 實驗5
一 實驗目的 1 掌握資料庫約束的概念 2 熟悉sql server 的完整性約束技術。3 了解sql server 的違反完整性處理措施。二 實驗準備 1 了解資料庫完整性約束的基本概述 2 了解sql server完整性約束技術。包括實體完整性 參照完整性 使用者定義完整性等。3 了解主鍵 pr...
資料庫原理及應用 四 資料庫管理系統
資料庫管理系統中非常重要的一部分。按照一定的規則將語句變化成關係代數以後進行優化 對代數優化後的查詢樹使用比較好的方法進行查詢。主要是對連線運算進行優化 備份 完整備份 差異備份 日誌 事務的特性由dbms負責維護,因此對於需要使用事務來進行執行的sql語句,我們要定義在事務中。如果沒有顯式地建立事...
資料庫原理及應用 2
單一的資料結構 關係 現實世界的實體以及實體間的各種聯絡均用關係來表示 邏輯結構 二維表 從使用者角度,關係模型中資料的邏輯結構是一張二維表 建立在集合代數的基礎上一組具有相同資料型別的值的集合 笛卡爾積可表示為乙個二維表 表中的每行對應乙個元組,表中的每列對應乙個域 d1 d2 dn的子集叫作在域...