大三期末復習
以下問題都需要熟練寫出來
數據庫的特點?
數據結構化 ,數據之間具有聯系,面向整個系統;數據的共享性高,冗余度低,易擴充;數據獨立性高。
有哪些數據庫?
mysql、SQL Server、Oracle、Hadoop等
相關免費學習推薦:mysql視頻教程
數據庫的種類包括?
早期比較流行的數據庫模型有三種,分別為
- 層次式數據庫
- 網絡式數據庫
- 關系型數據庫
而在當今的互聯網中,最常用的數據庫模型主要是兩種,即
- 關系型數據庫
- 非關系型數據庫。
DDL、DQL、DML是什么?
-
DDL(Data Definition Language)數據定義語言
用來定義數據庫對象:數據庫,表,列等。關鍵字:create,drop,alter 等 -
DQL(Data Query Language)數據查詢語言
用來查詢數據庫中表的記錄(數據)。關鍵字:select等 -
DML(Data Manipulation Language)數據操作語言
用來對數據庫中表的數據進行增刪改。關鍵字:insert,delete,update 等.
有哪些約束?他們分別的含義為?
- 主鍵約束:primary key
- 非空約束:not null
- 唯一約束:unique
- 外鍵約束:foreign key
數據庫系統的組成?
- 數據庫
- 計算機硬件
- 計算機軟件
- 數據庫用戶
函數有哪些?
名稱 | 功能 |
---|---|
AVG() | 返回某字段的平均值 |
COUNT() | 返回某字段的行數 |
MAX() | 返回某字段的最大值 |
MIN() | 返回某字段的最小值 |
SUM() | 返回字段的和 |
分頁查詢?
- 如果只給定一個參數,表示記錄數。
- 兩個參數,第一個參數表示offset, 第二個參數為記錄數。
limit m,n;
過濾重復數據?
SELECT DISTINCT <字段名> FROM <表名>;
模糊查詢?
[NOT] LIKE '字符串
- NOT :可選參數,字段中的內容與指定的字符串不匹配時滿足條件。
- 字符串:指定用來匹配的字符串。“字符串”可以是一個很完整的字符串,也可以包含通配符。
LIKE 關鍵字支持百分號“%”和下劃線“_”通配符。
varchar 和char的區別?
char的長度是不可變的,而varchar的長度是可變的,也就是說,定義一個char[10]和varchar[10],如果存進去的是‘csdn’,那么char所占的長度依然為10,除了字符‘csdn’外,后面跟六個空格,而varchar就立馬把長度變為4了,取數據的時候,char類型的要用trim()去掉多余的空格,而varchar是不需要的。
再者,char的存儲方式是,對英文字符(ASCII)占用1個字節,對一個漢字占用兩個字節;而varchar的存儲方式是,對每個英文字符占用2個字節,漢字也占用2個字節。
新建視圖、刪除視圖語句?
新建視圖:
create view 視圖名字 as select 語句;
刪除視圖:
drop view 視圖名字;
重點看:數據庫.md、數據定義語言(DDL).md的筆記
最后一道大題30分
考點:建庫,建表,查詢
參考:所有作業練習
例:
-- 創建create table stuInfo( stuId int primary key auto_increment, stuName varchar(10) not null, stuAge int not null, stuSex int not null check(stuSex = 0 or stuSex = 1), time datetime)create table courseInf( courseId int primary key auto_increment, courseName varchar(10) not null, courseMarks int not null)create table scoreInfo( scoreId int primary key auto_increment, stuId int, courseId int, score int not null, constraint scoreInfo_stuInfo_fk foreign key(stuId) references stuInfo(stuId), constraint scoreInfo_courseInf_fk foreign key(courseId) references courseInf(courseId))-- 插入insert into stuInfo()values(default,'Tom',19,1,null),(default,'Jack',20,0,null),(default,'Rose',21,1,null),(default,'Lulu',19,1,null),(default,'Lili',21,0,null),(default,'adc',20,1,'2007-01-07 01:11:36.590');insert into courseInf()values(default,'JavaBase',4),(default,'HTML',2),(default,'JavaScript',2),(default,'SqlBase',2);insert into scoreInfo()values(default,1,1,80),(default,1,2,85),(default,1,4,50),(default,2,1,75),(default,2,3,45),(default,2,4,75),(default,3,1,45),(default,4,1,95),(default,4,2,75),(default,4,3,90),(default,4,4,45);-- 查詢出每個學生所選修的課程的數量和所選修的課程的考試的平均分select count(courseId),avg(score)from scoreInfogroup by stuId;-- 修改UPDATE table_name SET field1=new-value1, field2=new-value2[WHERE Clause]-- 刪除DELETE FROM table_name [WHERE Clause]
提醒:如果認真看完做完作業的同學,最后一道大題肯定會拿滿分,dddd,就不在說了
相關免費學習推薦:mysql數據庫(視頻)