最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL每日一練項目之校園教務系統(tǒng)

 更新時間:2023年09月19日 09:47:44   作者:世俗ˊ  
這篇文章主要給大家介紹了關于MySQL每日一練項目之校園教務系統(tǒng)的相關資料,教務管理系統(tǒng)是一套高校專用管理系統(tǒng),主要用于解決信息化辦公流程、學生管理、課程管理、教職工管理等相關問題,需要的朋友可以參考下

一丶數(shù)據(jù)庫名稱:SchoolDB

二丶數(shù)據(jù)庫表信息:角色信息表

表名:

t_role  

主鍵:

r_id

序號

字段名稱

字段說明

類別

位數(shù)

屬性

備注

1

r_id

角色編號

int

主鍵 自動增長

2

r_name_EN

角色名(英文)

varchar

20

非空

不能重復

3

r_name_CH

角色名(中文)

varchar

20

非空

不能重復

4

r_remark

說明簡介

nvarchar

500

非空

默認為“男”

數(shù)據(jù)庫表信息:班級信息表

表名:

t_class

主鍵:

c_id

序號

字段名稱

字段說明

類別

位數(shù)

屬性

備注

1

c_id

班級編號

int

主鍵 自動增長

2

c_classname

班級名

varchar

20

非空

不能重復

數(shù)據(jù)庫表信息:用戶信息表

表名:

t_user

主鍵:

u_id

序號

字段名稱

字段說明

類別

位數(shù)

屬性

備注

1

u_id

用戶編號

int

主鍵 自動增長

2

u_username

用戶登陸名

varchar

20

非空

不能重復

3

u_password

用戶登陸密碼

varchar

20

非空

4

u_name

用戶名

varchar

20

非空

5

u_sex

性別

char

2

非空

默認為“男”  只能是男或女

6

u_age

年齡

int

非空

年齡只能0~100區(qū)間

7

u_phoneNum

電話號碼

varchar

20

非空

長度必須是11位

8

u_address

家庭住址

varchar

50

9

u_type

狀態(tài)

是否禁用

int

非空

只能是0或1

1 正常 

0 禁用

10

r_id

角色

int

非空

外鍵

11

c_id

班級

int

非空

外鍵

三丶實現(xiàn)步驟

1、向角色信息表、班級信息表、用戶信息表添加對數(shù)據(jù) 分別使用單行或多行插入數(shù)據(jù)的方式完成。并使用全查詢分別查詢出三張表的數(shù)據(jù)。

如下圖1~ 圖3所示:

44547f499c964d04a01b69dacc2d040d.png

圖1

f156da5414d14cfcbb2d03aa13efeb3a.png

圖2

1212a554a0674f7fae7131ad65fdc2ae.png

圖3

要求:

角色信息表使用單行數(shù)據(jù)插入的方式完成對數(shù)據(jù)的插入

班級信息表用戶信息表使用多行插入的方式完成對數(shù)據(jù)的插入

2、查詢用戶信息表 如下圖4所示:

6d0a0dc555b841e8896873eb7307f370.png

圖4

要求:

       給字段起別名,顯示用戶信息表

3、按照下列需求完成所有條件查詢:

7c0369fcb8f444bcb28c95d912adf8c9.png

6a4becc25b56489fa0b0b3e137843b2e.png

e4471a77b5d74bc28be271784d866a79.png

a95aa918f02c4e3cad06803bb7034eb1.png

-- 一,	創(chuàng)建數(shù)據(jù)庫SchoolDB
-- 1,刪除數(shù)據(jù)庫
	DROP DATABASE IF EXISTS SchoolDB;
-- 2,創(chuàng)建數(shù)據(jù)庫
	CREATE DATABASE SchoolDB;
-- 3,修改數(shù)據(jù)庫編碼方式和字符集排列順序
	ALTER DATABASE SchoolDB CHARACTER SET utf8 COLLATE utf8_bin;
-- 4,使用數(shù)據(jù)庫
	USE SchoolDB;
-- 二,	在數(shù)據(jù)庫SchoolDB中創(chuàng)建3張表
-- 1,	角色信息表(t_role)
DROP TABLE IF EXISTS t_role;
CREATE TABLE t_role(
r_id INT PRIMARY KEY AUTO_INCREMENT,   -- 角色編號
r_name_EN VARCHAR(20) NOT NULL UNIQUE,  -- 角色名(英文)
r_name_CH VARCHAR(20) NOT NULL UNIQUE,  -- 角色名(中文)
r_remark NVARCHAR(500) NOT NULL DEFAULT '男'  -- 說明簡介
);
-- 2,	班級信息表(t_class)
DROP TABLE IF EXISTS t_class;
CREATE TABLE t_class(
c_id INT PRIMARY KEY AUTO_INCREMENT,     -- 班級編號
c_classname VARCHAR(20) NOT NULL UNIQUE  -- 班級名
);
-- 3,	用戶信息表(t_user)
DROP TABLE IF EXISTS t_user;
CREATE TABLE t_user(
u_id INT PRIMARY KEY AUTO_INCREMENT,   -- 用戶編號
u_username VARCHAR(20) NOT NULL UNIQUE,  -- 用戶登陸名
u_password VARCHAR(20) NOT NULL,          -- 用戶登陸密碼
u_name VARCHAR(20) NOT NULL,              -- 用戶名
u_sex CHAR(2) NOT NULL DEFAULT '男',     -- 性別
u_age INT NOT NULL,                      -- 年齡
u_phoneNum VARCHAR(11) NOT NULL,         -- 電話號碼
u_address VARCHAR(50),                   -- 家庭住址
u_type INT NOT NULL DEFAULT 1,           -- 狀態(tài)是否禁用
r_id INT NOT NULL,                       -- 角色,外鍵
c_id INT,                       -- 班級,外鍵
FOREIGN KEY (r_id) REFERENCES t_role(r_id),
FOREIGN KEY (c_id) REFERENCES t_class(c_id)
);
-- 三添加數(shù)據(jù)
-- 1,添加角色信息表(t_role)數(shù)據(jù)		
INSERT INTO t_role VALUES(DEFAULT,'boss','超級管理員','可以管理所有數(shù)據(jù)操作');
INSERT INTO t_role VALUES(DEFAULT,'admin','管理員','可以管理大部分數(shù)據(jù)操作');
INSERT INTO t_role VALUES(DEFAULT,'stu','學生','說明');
INSERT INTO t_role VALUES(DEFAULT,'teacher','老師','說明');
SELECT * FROM t_role;
-- 2,添加班級信息表(t_class)數(shù)據(jù)
INSERT INTO t_class VALUES(DEFAULT,'物聯(lián)網(wǎng)201401班');
INSERT INTO t_class VALUES(DEFAULT,'物聯(lián)網(wǎng)201402班');
INSERT INTO t_class VALUES(DEFAULT,'物聯(lián)網(wǎng)201403班');
INSERT INTO t_class VALUES(DEFAULT,'物聯(lián)網(wǎng)201404班');
INSERT INTO t_class VALUES(DEFAULT,'物聯(lián)網(wǎng)201405班');
SELECT * FROM  t_class;
-- 3,添加用戶信息表(t_user)數(shù)據(jù)
INSERT INTO t_user VALUES(1001,'abc','abc','abc','男',70,110,'武漢湖北科職',1,1,NULL);
INSERT INTO t_user VALUES(1002,'admin','admin','admin','男',0,120,'武漢湖北科職',1,2,NULL);
INSERT INTO t_user VALUES(1003,'huangba','huang66ba','黃八','男',20,15122535477,'北京東城',0,3,3);
INSERT INTO t_user VALUES(1004,'jack','jklove','杰克','男',19,15011982675,'湖南長沙',1,3,4);
INSERT INTO t_user VALUES(1005,'lisi',123456,'李四','男',20,15002726555,'湖北武漢',1,3,1);
INSERT INTO t_user VALUES(1006,'tom','tomandjack','湯姆','女',20,13002766545,'湖南韶山',1,3,5);
INSERT INTO t_user VALUES(1007,'wangwu','wangwu520','王五','男',34,13645267654,'湖北黃岡',1,4,NULL);
INSERT INTO t_user VALUES(1008,'yanqi','yanyan112','燕七','女',28,13288625642,'北京海淀',1,4,NULL);
INSERT INTO t_user VALUES(1009,'zhangsan',123,'張三','女',19,13017656783,'湖北武漢',1,3,2);
INSERT INTO t_user VALUES(10010,'zhaoliu','01234567...','趙六','女',54,15524786722,'湖北黃岡',0,4,1);
SELECT * FROM  t_user;
-- 查詢用戶信息表 如下圖4所示: 要求:給字段起別名,顯示用戶信息表
SELECT u_id AS '用戶編號', 
       u_username AS '用戶名',
       u_name AS '姓名', 
       u_sex AS '性別', 
       u_age AS '年齡', 
       u_phoneNum AS '電話', 
       u_address AS '地址', 
       CASE u_type WHEN 0 THEN '禁用' ELSE '正常' END AS '狀態(tài)', 
       b.r_name_CH AS '角色名稱',
       c.c_classname AS '班級名稱'
FROM t_user a
INNER JOIN t_role b ON a.r_id = b.r_id
LEFT JOIN t_class c ON a.c_id = c.c_id;
-- 四,完成如下查詢題目
-- 3、按照下列需求完成所有條件查詢:
-- -------- 1,過濾重復記錄(distinct) -------------- 
-- 過濾用戶表重復的地址
SELECT DISTINCT u_address 家庭住址 FROM t_user;
-- 過濾用戶表重復的年齡
SELECT DISTINCT u_age 年齡 FROM t_user
-- --- 2,顯示若干條(top)---------------
-- 顯示班級表前3條記錄
SELECT * FROM t_class LIMIT 3;
-- 顯示用戶表前5條記錄
SELECT * FROM t_user LIMIT 5;
-- --- 3,簡單條件查詢(where)---------------
-- 顯示用戶表所有"男"性的信息
SELECT * FROM t_user WHERE u_sex = '男';
-- 顯示用戶表中是 學生的信息
SELECT * FROM t_user WHERE u_type = 1;
-- 顯示用戶表中年齡在24到60歲之間的人的信息(提示:between and)
SELECT * FROM t_user WHERE u_age BETWEEN 24 AND 60;
-- 顯示用戶表中年齡不在24到60歲之間的人的信息
SELECT * FROM t_user WHERE u_age NOT BETWEEN 24 AND 60;
-- 顯示角色表中 角色名(中文)為"管理員'、"學生"、"老師"的信息
SELECT * FROM t_role WHERE r_name_CH IN ('管理員', '學生', '老師');
-- 顯示角色表中 角色名(中文)為"超級管理員"的信息
SELECT * FROM t_role WHERE r_name_CH = '超級管理員';
-- 顯示用戶表 班級為空的信息
SELECT * FROM t_user WHERE c_id IS NULL;
-- 顯示用戶表 班級不為空的信息
SELECT * FROM t_user WHERE c_id IS NOT NULL;
-- 4,模糊杳詢(like /not like)
-- 查詢用戶表 電話號碼是以15開頭的所有人信息
SELECT * FROM t_user WHERE u_phoneNum LIKE '15%';
-- 查詢用戶表 地址是湖北或湖南的所有人信息
SELECT * FROM t_user WHERE u_address LIKE '%湖北%' OR u_address LIKE '%湖南%';
-- 查詢用戶表 地址除湖北或湖南之外的所有人信息
SELECT * FROM t_user WHERE u_address NOT LIKE '%湖北%' AND u_address NOT LIKE '%湖南%';
-- -----5,杳詢排序(order by)
-- 對用戶表 用戶年齡升序排序
SELECT * FROM t_user ORDER BY u_age ASC;
-- 對用戶表 用戶年齡降序排序
SELECT * FROM t_user ORDER BY u_age DESC;
-- -----6,對查詢結果進行計算(求和sum 求平均數(shù)avg統(tǒng)計行數(shù)count)---------------
-- 求用戶表用戶年齡的總和
SELECT SUM(u_age) 年齡的總和 FROM t_user;
-- 求用戶表 用戶年齡的平均數(shù)
SELECT AVG(u_age) 年齡的平均數(shù) FROM t_user;
-- 求用戶表 有多少個用戶
SELECT COUNT(*) 用戶人數(shù) FROM t_user;
-- 求用戶表 有多少個老師
SELECT COUNT(*) 老師人數(shù) FROM t_user WHERE r_id=4;
-- ---7,分組(group by/having)	------	
-- 求各個角色的人數(shù)
SELECT r_name_CH 角色名(中文),COUNT(*) 人數(shù) FROM t_user INNER JOIN t_role ON t_user.r_id = t_role.r_id GROUP BY t_role.r_id;
-- 求各個角色中 所有人總年齡超過100的角色有哪些
SELECT r_name_CH 角色名(中文) FROM t_role WHERE r_id IN (SELECT DISTINCT r_id FROM t_user GROUP BY r_id HAVING SUM(u_age) > 100);
-- 4、按照下列需求完成所有鏈接查詢:
-- ---8,聯(lián)接查詢----
-- (1)內連接(inner join)
-- 查詢所有用戶信息顯示用戶信息及對應的角色名(中文)
SELECT t_user.*,r_name_CH 角色名(中文) FROM t_user INNER JOIN t_role ON t_user.r_id = t_role.r_id;
-- 查詢所有用戶信息顯示用戶信息及對應的班級名稱
SELECT t_user.*,c_classname 班級名稱 FROM t_user INNER JOIN t_class ON t_user.c_id = t_class.c_id;
-- 查詢所有用戶信息顯示用戶信息及對應的角色名(中文)和班級名稱
SELECT t_user.*,r_name_CH '角色名(中文)',c_classname 班級名稱
FROM t_user
INNER JOIN t_role ON t_user.r_id = t_role.r_id
INNER JOIN t_class ON t_user.c_id = t_class.c_id;
-- 查詢所有"男,用戶并且年齡在10到24的信息顯示用戶信息及對應的角色名(中文)和班級名稱
SELECT t_user.*,r_name_CH '角色名(中文)',c_classname 班級名稱
FROM t_user
INNER JOIN t_role ON t_user.r_id = t_role.r_id
INNER JOIN t_class ON t_user.c_id = t_class.c_id
WHERE u_sex= '男' AND u_age BETWEEN 10 AND 24;
-- (2)內聯(lián)接的where寫法
-- 查詢所有"男'用戶并且年齡在10到24的信息顯示用戶信息及對應的角色名(中文)和班級名稱
SELECT t_user.*,r_name_CH '角色名(中文)',c_classname 班級名稱
FROM t_user
INNER JOIN t_role ON t_user.r_id = t_role.r_id
INNER JOIN t_class ON t_user.c_id = t_class.c_id
WHERE u_sex= '男' AND u_age BETWEEN 10 AND 24;
-- (3)外聯(lián)接(left/right [outer] join)
-- 查詢所有用戶信息顯示用戶信息及對應的角色名(中文)和班級名稱,以主表為主
SELECT t_user.*,r_name_CH '角色名(中文)',c_classname 班級名稱
FROM t_user 
LEFT JOIN t_role ON t_user.r_id = t_role.r_id 
LEFT JOIN t_class ON t_user.c_id = t_class.c_id;
-- 查詢所有用戶信息顯示用戶信息及對應的角色名(中文)和班級名稱,以副表為主
SELECT t_user.*,r_name_CH,c_classname
FROM t_role 
RIGHT JOIN t_user ON t_user.r_id = t_role.r_id 
LEFT JOIN t_class ON t_user.c_id = t_class.c_id;

總結

到此這篇關于MySQL校園教務系統(tǒng)的文章就介紹到這了,更多相關MySQL校園教務系統(tǒng)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL二進制日志(bin_log)的作用與使用方法

    MySQL二進制日志(bin_log)的作用與使用方法

    BinLog又稱為二進制日志,是MySQL服務層的數(shù)據(jù)日志,MySQL所有的存儲引擎都支持BinLog,這篇文章主要給大家介紹了關于MySQL二進制日志(bin_log)的作用與使用方法的相關資料,需要的朋友可以參考下
    2024-06-06
  • mysql 存儲過程詳解

    mysql 存儲過程詳解

    這篇文章主要介紹了mysql 存儲過程詳解的相關資料,需要的朋友可以參考下
    2016-09-09
  • 詳解MySQL誤操作后怎樣進行數(shù)據(jù)恢復

    詳解MySQL誤操作后怎樣進行數(shù)據(jù)恢復

    在大家日常操作數(shù)據(jù)庫時候難免會因為“大意”而誤操作,那么誤操作后怎樣進行數(shù)據(jù)恢復呢,下面跟著小編一起來學習學習。
    2016-08-08
  • MySQL數(shù)據(jù)庫備份的四種常用方式與選型指南

    MySQL數(shù)據(jù)庫備份的四種常用方式與選型指南

    MySQL備份是數(shù)據(jù)庫管理的核心環(huán)節(jié)之一,通過備份能夠有效地防止數(shù)據(jù)丟失,確保數(shù)據(jù)的安全和恢復能力,備份的方式多種多樣,以下是四種常見的MySQL備份表的方式,涵蓋從簡單的命令行工具到復雜的二進制日志備份,供不同場景下使用,需要的朋友可以參考下
    2026-04-04
  • MySQl數(shù)據(jù)庫必知必會sql語句(加強版)

    MySQl數(shù)據(jù)庫必知必會sql語句(加強版)

    本文給大家分享了一篇關于mysql數(shù)據(jù)庫必會sql語句加強版內容,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-04-04
  • Mysql中的圖形化界面方式

    Mysql中的圖形化界面方式

    推薦使用MySQL Workbench作為官方免費工具,配置遠程連接需指定端口以確保安全,通過命令查看端口號并測試連接設置
    2025-08-08
  • mysql連續(xù)聚合原理與用法實例分析

    mysql連續(xù)聚合原理與用法實例分析

    這篇文章主要介紹了mysql連續(xù)聚合原理與用法,結合實例形式分析了mysql連續(xù)聚合的原理、功能、使用方法及相關操作注意事項,需要的朋友可以參考下
    2019-12-12
  • mysql8.0?my.ini?如何永久修改時區(qū)

    mysql8.0?my.ini?如何永久修改時區(qū)

    這篇文章主要介紹了mysql8.0?my.ini?如何永久修改時區(qū),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 為mysql數(shù)據(jù)庫添加添加事務處理的方法

    為mysql數(shù)據(jù)庫添加添加事務處理的方法

    開始首先說明一下,mysql數(shù)據(jù)庫默認的數(shù)據(jù)庫引擎是MyISAM,是不支持事務的,單數(shù)如果你添加了數(shù)據(jù)執(zhí)行語句是不會出錯的,單數(shù)不管用,即便是回滾事務,記錄也是插入進去了,所有首先我們要做的第一步是更改數(shù)據(jù)庫引擎
    2011-07-07
  • 關于MySQL數(shù)據(jù)遷移--data目錄直接替換注意事項的詳解

    關于MySQL數(shù)據(jù)遷移--data目錄直接替換注意事項的詳解

    本篇文章是對關于MySQL數(shù)據(jù)遷移--data目錄直接替換的注意事項進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06

最新評論

沈丘县| 竹北市| 新河县| 邯郸市| 海林市| 樟树市| 上栗县| 同江市| 霞浦县| 方正县| 太原市| 仪陇县| 汝州市| 固始县| 睢宁县| 武定县| 鹤山市| 徐水县| 新巴尔虎左旗| 贵南县| 安阳市| 曲周县| 柳河县| 犍为县| 浦东新区| 日土县| 肇源县| 东阳市| 九龙城区| 龙陵县| 蒙阴县| 思南县| 青神县| 永嘉县| 朝阳区| 聊城市| 定日县| 沙洋县| 荆门市| 廉江市| 平遥县|