一、問題描述
某車輛排程系統,記錄了車輛排程情況,包括發車時間,收車時間,該系統的部分關係模式如下:
駕駛員:emp (eno, ename, ***, telephone),各屬性分別表示駕駛員工號,駕駛員姓名,駕駛員性別和**號碼;
汽車:car(cno, brand),各屬性分別表示汽車車牌號,車輛品牌名;
排程: schedule (sno, eno, cno, starttime, endtime),各屬性分別表示排程號,駕駛員工號,汽車車牌號,發車時間,收車時間)。
試用sql語句完成下面1-8題。
1.建立排程關係(schedule) 的sql語句,要求指定關係的主碼和外碼。(其中sno:char(10), eno: char (10), cno: char (8), starttime: datetime, endtime: datetime )
create schedule(
sno char(10
)primary
key,
eno char(10
),cno char(8
),starttime datetime
,endtime datetime
,foreign
key(eno)
references emp(eno)
,foreign
key(cno)
references car(cno)
)
2.查詢姓陳的駕駛員曾經駕駛過的車輛資訊,包括車牌號和車輛品牌名。
select car.cno,brand
from emp,car,schedule
where ename like
'陳'and car.cno=schedule.cno and schedule.eno=emp.eno
3.查詢所有在排程表中沒有安排過「比亞迪」品牌車輛的駕駛員工號。
select eno
from schedule
where cno notin(
select cno from car where brand=
'比亞迪'
4.統計每個司機(eno)的出車次數。
select eno,
count
(eno)
from schedule
group
by(eno)
5.將駕駛員「李力」駕駛的汽車車牌號更改為「c00123」。
update schedule
set cno=
'c00123'
where eno in
(select eno from emp where ename=
'李力'
)
6.刪除發車時間在2023年到2023年之間的排程資訊。
delete
from schedule
where starttime between
'2017'
and'2019'
7.建立所有「東風」品牌汽車的排程資訊的檢視df_ view,屬性有sno、eno、ename、cno、brand、starttime 和endtime。
create
view df_view(sno,eno,ename,cno,brand,starttime,endtime)
asselect sno,emp.eno,ename,car.cno,brand,starttime,endtime
from emp,car,schedule
where schedule.eno=emp.eno and schedule.cno=car.cno
8.授予駕駛員「王明」(使用者)可以檢視emp表的許可權。
grant
select
on emp
to 王明
資料庫 資料庫系統原理
事務指的是滿足 acid 特性的一組操作,可以通過 commit 提交乙個事務,也可以使用 rollback 進行回滾。事務被視為不可分割的最小單元,事務的所有操作要麼全部提交成功,要麼全部失敗回滾。回滾可以用回滾日誌來實現,回滾日誌記錄著事務所執行的修改操作,在回滾時反向執行這些修改操作即可。資料...
資料庫系統mysql MySQL資料庫系統
1 mysql的特點 1 多執行緒 多使用者 2 基於c s 客戶端 伺服器 架構 3 簡單易用 查詢速度快 4 安全可靠 2 mysql編譯安裝 代表鍵盤上tab鍵 1 準備工作 解除安裝使用rpm方式安裝的mysql rpm e mysql nodeps 安裝cmake包 cd media ta...
資料庫系統原理1
資料描述經歷了三個階段對應於三個資料模型 如 在乙個班級裡假設沒有重名的同學,現有四個屬性 學號 姓名 年齡 性別 超鍵 在關係中可以唯一標識元組的屬性集。學號是超鍵 學號 姓名是超鍵 學號,姓名 性別是超鍵。所以超鍵可以是乙個屬性也可以是乙個屬性集,只要可以唯一標識就行。候選鍵 不含有多餘屬性的超...