大三期末復習
以下問題都需要熟練寫出來
資料庫的特點?
資料結構化 ,資料之間具有聯系,面向整個系統;資料的共享性高,冗余度低,易擴充;資料獨立性高,
有哪些資料庫?
MySQL、SQL Server、Oracle、Hadoop等
資料庫的種類包括?
早期比較流行的資料庫模型有三種,分別為
- 層次式資料庫
- 網路式資料庫
- 關系型資料庫
而在當今的互聯網中,最常用的資料庫模型主要是兩種,即
- 關系型資料庫
- 非關系型資料庫,
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 scoreInfo
group by stuId;
-- 修改
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
-- 洗掉
DELETE FROM table_name [WHERE Clause]
提醒:如果認真看完做完作業的同學,最后一道大題肯定會拿滿分,dddd,就不在說了
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/280965.html
標籤:其他
上一篇:mysql事務詳解
