日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 综合练习

發布時間:2023/12/16 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 综合练习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???
-- 設環境如下 : 一個系有多個專業,一個專業一年只招一個班,一個班有多個學生
-- 建立 系,班級,學生的數據庫
-- 關系模式為:班:CLASS (班號classid,專業名subject,系名deptname
-- 入學年份enrolltime,人數num)
-- 學生:STUDENT (學號studentid,姓名name,年齡age,班號classid)
-- 系:DEPARTMENT(系號departmentid,系名deptname)
-- 完成以下功能
-- 建表聲明主外碼,department是唯一約束,學生姓名不能空,自行插入數據
CREATE TABLE department (
?? ?departmentid VARCHAR(32) PRIMARY KEY ,
?? ?deptname VARCHAR(32)? UNIQUE NOT NULL);
DROP TABLE department

CREATE TABLE class(
?? ?classid INT PRIMARY KEY ,
?? ?`subject` VARCHAR(32) NOT NULL,
?? ?deptname VARCHAR(32),
?? ?enrolltime YEAR,
?? ?num INT NOT NULL DEFAULT 0,
FOREIGN KEY (deptname) REFERENCES department(deptname));
DROP TABLE class

CREATE TABLE student (
?? ?studentid INT PRIMARY KEY ,
?? ?`name` VARCHAR(32) NOT NULL DEFAULT '',
?? ?age INT,
?? ?classid INT ,
FOREIGN KEY(classid) REFERENCES class(classid));
DROP TABLE student

INSERT INTO class VALUES
?? ?(101,'軟件','計算機','1995',20),
?? ?(102,'微電子','計算機','1996',30),
?? ?(111,'無機化學','化學','1995',29),
?? ?(112,'高分子化學','化學','1996',25),
?? ?(121,'統計數學','數學','1995',20),
?? ?(131,'現代語言','中文','1996',20),
?? ?(141,'國際貿易','經濟','1997',30),
?? ?(142,'國際金融','經濟','1996',14);
?? ?

INSERT INTO student VALUES
?? ?(8101,'張三',18,101),
?? ?(8102,'錢四',16,121),
?? ?(8103,'王玲',17,131),
?? ?(8105,'李飛',19,102),
?? ?(8109,'趙四',18,141),
?? ?(8110,'李可',20,142),
?? ?(8201,'張飛',18,111),
?? ?(8302,'周瑜',16,112),
?? ?(8203,'王亮',17,111),
?? ?(8305,'董慶',19,102),
?? ?(8409,'趙龍',18,101),
?? ?(8510,'李麗',20,142);


INSERT INTO department VALUES
?? ?('001','數學'),('002','計算機'),
?? ?('003','化學'),('004','中文'),
?? ?('005','經濟');
?? ?
-- 找出所有姓李的學生
SELECT * FROM student
?? ?WHERE `name` LIKE '李%';
-- 列出所有開設超過一個專業的系的名字
SELECT deptname,COUNT(*) AS c FROM class
?? ?GROUP BY deptname
?? ?HAVING c > 1;
-- 列出人數>=30的系的編號和名字(先查各個系多少人做成臨時表,使用聯合查詢)
SELECT departmentid,department.deptname ,tem.nums
?? ?FROM department ,(SELECT deptname,SUM(num)AS nums FROM class
?? ??? ??? ??? ?GROUP BY deptname
?? ??? ??? ??? ?HAVING nums >= 30) tem
?? ?WHERE department.deptname = tem.deptname

-- 學校又新增加了一個物理系,編號為006
INSERT INTO department VALUES(006,'物理');
-- 張三退學,更新相關表 人數減一,兩個語句,用事務保持一致
START TRANSACTION ;#開始事務
# 人數減少
UPDATE? class SET num = num - 1
?? ?WHERE classid = (SELECT classid FROM student

#刪除學生?? ??? ??? ??? ?where `name` = '張三');
DELETE FROM student
?? ?WHERE `name` = '張三';
SELECT * FROM class
SELECT * FROM student
COMMIT;#提交事務

總結

以上是生活随笔為你收集整理的mysql 综合练习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。