工作版本資訊
目錄1.知識點梳理 1
1.1基本內容梳理 1
(1) sql的組成 1
(2) 基本表的建立、修改和撤銷 2
(3) select查詢語句的基本結構 2
(4) 聚合函式 3
(5) select語句完整的句法 3
1.2重要內容分析 4
專項練習題 5
基本表的建立:基本表c的建立語句
create table c
c# char(4),
cname char(10) not null,
t# char(4),
primary key(c#),
foreignkey (t#) references t(t#));
對基本表的結構進行修改,即增加新的列、刪除原有的列或修改資料型別、寬度等。
a.增加新的列用「alter…add…」語句,其句法如下:
alter table 《基本表名》 add 《列名》 《型別》
語句:alter table s add address varchar(30);
b.刪除原有的列用「alter…drop…」語句,句法:
alter table 《基本表名》drop 《列名》cascade│restrict]
語句:alter table s drop age cascade;
c.修改原有列的型別、寬度的句法如下:
alter table 《基本表名》 modify 《列名》 《型別》
語句:alter table s modify s# char(6);
基本表的撤銷
● 撤銷語句的句法如下:
drop table 《基本表名》[cascade│restrict]
此處的cascade、restrict的語義同前面句法中的語義一樣。
● 例3.5 需要撤銷基本表s。但只有在沒有檢視或約束引用基本表s中的列時才能撤銷,否則拒絕撤銷。可用下列語句實現:
drop table s restrict;
● 索引的建立
建立索引可用「create index」語句實現。其句法如下:
create [unique] index 《索引名》
on 《基本表名》(列名表)
語句:create unique index s#_index on s(s#);
create unique index sc_index
on sc(s# asc,c# desc);
● 索引的撤消
當索引不需要時,可以用「drop index」語句撤消,其句法如下:
drop index 《索引名》
語句:drop index s#_index,sc_index;
● select—from—where句型
在關係代數中最常用的式子是下列表示式:
a1,…,an(σf(r1×…×rm))
針對上述表示式,
sql為此設計了select—from—where句型:
select a1,…,an
from r1,…,rm
where f
● 在where子句的條件表示式f中可使用下列運算子
●算術比較運算子或!=。
●邏輯運算子:and,or,not。
●集合成員資格運算子:in,not in。
●謂詞:exists,all,some,unique。
●聚合函式:**g,min,max,sum,count。
●f中運算物件還可以是另乙個select語句,即select語句可以巢狀。
●另外,select語句的查詢結果之間還可以進行集合的並、交、差操作,其運算子是:union,intersect,except。
● count(*) 計算元組的個數
● count(列名) 對一列中的值計算個數
● sum(列名) 求某一列值的總和(此列的值必須是數值型)
● **g(列名) 求某一列值的平均值(此列的值必須是數值型)
● max(列名) 求某一列值的最大值
● min(列名) 求某一列值的最小值
聚合函式使用例項:
①求男學生的總人數和平均年齡。
select count(*),**g(age)
from s
where ***='m';
②統計選修了課程的學生人數。
select count(distinct s#)
from sc;
select 目標表的列名或列表示式序列
from 基本表名和(或)檢視序列
[where 行條件表示式]
[group by 列名序列
[h**ing 組條件表示式 ]]
[order by 列名[asc|desc],…]
● 整個語句的執行過程如下:
a.讀取from子句中基本表、檢視的資料,執行笛卡兒積操作。
b.選取滿足where子句中給出的條件表示式的元組。
c.按group子句中指定列的值分組,同時提取滿足h**ing子句中組條件表示式的那些組。
d.按select子句中給出的列名或列表示式求值輸出。
子句對輸出的目標表進行排序,按附加說明asc公升序排列,或按desc降序排列。
(1) select語句的**(與關係代數的對應)
在關係代數中最常用的式子是下列表示式:
a1,…,an(σf(r1×…×rm))
表示式中的r1、…、rm為關係,f是公式,a1、…、an為屬性。
針對上述表示式,sql為此設計了select—from—where句型:
select a1,…,an
from r1,…,rm
where f
這個句型是從關係代數表示式演變來的,但where子句中的條件表示式f要比關係代數中公式更靈活。
(2) select語句**現的基本表名,應理解為基本表中的元組變數,而列名應理解為元組分量。
(3) select語句的語義有三種情況,下面以學生表s(s#,sname,age,***)為例說明。
情況一:select語句中未使用分組子句,也未使用聚合操作,那麼select子句的語義是對查詢的結果執行投影操作。
譬如:select s#,sname
from s
where ***='m';
情況二:select語句中未使用分組子句,但在select子句中使用了聚合操作,此時select子句的語義是對查詢結果執行聚合操作。
譬如: select count(*),**g(age)
from s
where ***='m';
該語句是求男同學的人數和平均年齡。
情況三:select語句使用了分組子句和聚合操作(有分組子句時必有聚合操作),此時select子句的語義是對查詢結果的每一分組去做聚合操作。
譬如: select age,count(*)
from s
where ***='m'
group by age;
該語句是求男同學每一年齡的人數。
(4) select語句的**(與關係代數的對應)
select語句中使用分組子句的先決條件是要有聚合操作。但執行聚合操作不一定要用分組子句。譬如求男同學的人數,此時聚合值只有乙個,因此不必分組。
但同乙個聚合操作的值有多個時,必須使用分組子句。譬如求每一年齡的學生人數。此時聚合值有多個,與年齡有關,因此必須分組。
對於教學資料庫的三個基本表:
學生 student(sno,sname,age,***)
其屬性是學生學號,學生名稱,年齡,性別。
選課 sc(sno,cno, grade)
其屬性是學生學號,學生選的課程號,成績。
課程 course(cno,cname,teacher)
其屬性是全部課程號,課程名稱,教師名稱。
(1) 年齡不小於22歲的男學生的學號和姓名。
(2) 查詢所有姓王的學生的姓名和年齡。
(3) 查詢已經選過課的學生學號。
(4) 查詢尚無成績的學生學號。
(5) 查詢數學系(ma)和電腦科學系(cs)學生的姓名和性別。
(6) 查詢各門課程的最低成績,要求顯示課程號及最低成績。
(7) 查詢課程號為「01」的學生成績,要求顯示學號、姓名及成績。
(8) 查詢每個學生平均成績大於90的學號。
(9) 統計每門課程的學生選修人數(超過15人的課程才統計)。要求顯示課程號和人數,查詢結果按人數降序排列,若人數相同,按課程號公升序排列。
(10) 查詢選了張三老師課的學生學號。
(11) 查詢每個學生超過他選修課程平均成績的學號及課程號。
(12) 把低於所有課程總平均成績的女同學的成績提高3% 。
(13) 三個表中,sno、sname、cno、grade是經常被一起查詢的屬性。為了方便查詢,建立乙個檢視v_stdtgrade,其屬性為以上四個屬性,寫出建立v_stdtgrade的語句。
光學專題複習
2018年中考物理光學專題複習 1 2017河南 無人機利用攜帶的焦距一定的 機進行航拍,來自地面景物的光通過攝像機鏡頭,會聚在感光晶元上,形成倒立 選填 放大 或 縮小 的實像 當無人機上公升時,須 選填 增大 或 減小 鏡頭與感光晶元間的距離,才能拍攝到清晰的畫面。2 2017河南 圖12是 平...
英語專題複習
英語專題複習 介詞 一 介詞的用法 介詞是一種虛詞,介詞不能單獨做句子成分,必須與它後面的名詞或代詞 或相當於名詞的其他詞類 短語或從句 構成介詞短語。二 介詞的分類 一 簡單介詞 about at by under of over past 等。二 合成介詞 inside into outside...
專題一複習
注意 1 計量數的變化與反應熱數值的變化要對應 2 反應方向發生改變反應熱的符號也要改變 反應熱計算的常見題型 1 化學反應中物質的量的變化與反應能量變化的定量計算。2 理論推算反應熱 依據 物質變化決定能量變化 1 蓋斯定律設計合理路徑 路徑1總能量變化等於路徑2總能量變化 2 通過已知熱化學方程...