學生成績管理資料庫
---========修改資料庫=====---
-----01修改主資料檔案----
modify file
(
name = 'Student'
size = 20mb
maxsize = 50mb
filegrowth = 5 mb
)
go
------02 修改日誌資料檔案----
modify file
(
name = 'Student_log'
size = 10mb
maxsize = unlimited
filegrowth = 10%
)
go
--========-S:學生表 T:教師表 C:課程表 SC:成績表==============----
---==========1. 定義學生管理資料表====------從資料庫中刪除資料表
---刪除資料表時,刪除順序與建立順序相反,要考慮到外來鍵的約束
if OBJECT_ID('SC')is not null
drop table SC;
if object_id('T') is not null
drop table T;
if OBJECT_ID('C') is not null
drop table C;
if OBJECT_ID('S') is not null
drop table S;
go
----驗證使用者資料表確實刪除---
select name
from sys.objects
where type = 'U'
go
---===================================---
----建立學生表S
create table S
(
S# char(5) primary key ,
Sname char(6) unique not null,
Ssex char(2) check(Ssex in ('男','女')),
Sbirth smalldatetime ,
Departname varchar(20),
EntranceDate smalldatetime ,
Place char(10),
Political char(10),
Note text,
)
------------------------------------
---建立課程表C
create table C
(
C# int primary key,
Cname varchar(20) not null,
Credit tinyint not null,
note text ,
)
------------------------------------
---建立教師表T
create table T
(
T# int primary key,
Tname char(10) unique,
Tsex char(2) check (Tsex in ('男','女')),
Tbirth smalldatetime,
DepartName varchar(20),
Degree char(10),
Titleof char(10),
Note text,
)
---------------------------
----建立成績表SC
create table SC
(
S# char(5),
C# int,
T# int not null,
Grade decimal(5,1) not null,
primary key (S#,C#),
foreign key (S#) references S(S#),
foreign key (C#) references C(C#),
foreign key (T#) references T(T#),
)
go
-----------------------------------
---==刪除資料表中資料順序要與新增資料的順序相反
delete SC
delete T
delete C
delete S
go
-------------------------------------
-------向學生表S中插入資料
insert S
values ('1000','高蘭','女','1989-08-09','醫學院','2008-09-02','北京','預備黨員','無')
insert S
values ('1001','張強','男','1990-01-14','計算機學院','2009-09-03','洛陽','黨員','無')
insert S
values ('1002','高梅','女','1989-08-19','醫學院','2008-09-02','哈爾冰','黨員','無')
insert S
values ('1003','張浩','男','1988-11-26','外語學院','2007-09-03','咸陽','團員','無')
insert S
values ('1004','高磊','男','1989-08-10','物理學院','2008-09-02','北京','預備黨員','無')
insert S
values ('1005','張兵','男','1990-08-30','計算機學院','2008-09-03','洛陽','無','無')
insert S
values ('1006','趙詩云','女','1989-10-17','管理學院','2009-09-02','蘇州','預備黨員','無')
insert S
values ('1007','劉海濤','男','1986-01-18','計算機學院','2005-09-03','洛陽','黨員','無')
insert S
values ('1008','李麗萍','女','1985-08-29','化工學院','2005-09-02','蘭州','團員','無')
insert S
values ('1009','王強','男','1990-01-19','計算機學院','2008-09-03','洛陽','黨員','無')
insert S
values ('1010','鍾秋潔','女','1988-08-13','外語學院','2008-09-02','香港','無','華僑')
insert S
values ('1011','慕容泓','男','1992-01-24','計算機學院','2003-09-03','洛陽','黨員','無')
insert S
values ('1012','錢俊濤','男','1987-08-09','醫學院','2006-09-02','昆明','預備黨員','無')
insert S
values ('1013','納蘭康','男','1990-01-04','地球物理學院','2008-03-03','上海','黨員','無')
insert S
values ('1014','顧興濤','男','1989-11-10','醫學院','2008-09-02','南京','團員','無')
insert S
values ('1015','張衡','男','1990-01-10','計算機學院','2003-09-03','深圳','無','華僑')
insert S
values ('1016','高雪梅','女','1987-08-24','石油學院','2007-03-02','北京','預備黨員','無')
insert S
values ('1017','李明和','男','1993-01-14','物理學院','2008-03-03','上海','黨員','無')
insert S
values ('1018','趙興軍','男','1989-09-08','數學學院','2009-09-02','天津','無','無')
insert S
values ('1019','張小潔','女','1989-06-01','外語學院','2008-09-03','杭州','黨員','無')
insert S
values ('1020','田何敏','女','1988-08-15','醫學院','2009-09-02','嘉慶','團員','無')
insert S
values ('1021','張國龍','男','198-08-08','石油學院','2008-09-03','長沙','團員','無')
insert S
values ('1022','張小薰','女','1989-12-25','政法學院','2009-09-03','紹興','團員','無')
insert S
values ('1023','蕭肖','女','1988-03-02','城建學院','2007-09-02','西安','黨員','無')
insert S
values ('1024','包曉婷','女','1985-09-01','外語學院','2005-09-03','杭州','黨員','無')
insert S
values ('1025','何琪芸','女','1984-08-15','醫學院','2005-09-02','延安','團員','無')
insert S
values ('1026','趙恆','男','1986-02-15','物理學院','2003-09-02','西安','團員','無')
insert S
values ('1027','何欣','女','1986-05-15','外語學院','2003-09-02','寶雞','黨員','無')
---------------------------------------------------------------------向課程表C中插入資料
insert C(C#,Cname,Credit) values(1,'大學英語',6)
insert C(C#,Cname,Credit) values(2,'高等數學',4)
insert C(C#,Cname,Credit) values(3,'C語言程式',5)
insert C(C#,Cname,Credit) values(4,'大學物理',4)
insert C(C#,Cname,Credit) values(5,'軟體導論',3)
insert C(C#,Cname,Credit) values(6,'作業系統',4)
insert C(C#,Cname,Credit) values(7,'西方文化概論',2)
insert C(C#,Cname,Credit) values(8,'人文素質教育',1)
insert C(C#,Cname,Credit) values(9,'商務英語',4)
insert C(C#,Cname,Credit) values(10,'商務口語',2)
insert C(C#,Cname,Credit) values(11,'多媒體資訊處理',2)
insert C(C#,Cname,Credit) values(12,'類比電路',5)
insert C(C#,Cname,Credit) values(13,'土木工程論',5)
insert C(C#,Cname,Credit) values(14,'電子商務',1)
insert C(C#,Cname,Credit) values(15,'資料庫應用',6)
insert C(C#,Cname,Credit) values(16,'大學藝術',1)
-------------------------------------------------
---向教師表T中插入資料
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('100','李嵐','女','1968-06-25','外語學院','本科','教授')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('101','趙君傑','男','1963-01-09','計算機學院','博士','教授')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('102','張曉晨','女','1980-11-03','物理學院','研究生','講師')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf
) values('103','秦康','男','1979-7-12','石油學院','碩士','講師')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('104','張偉','男','1968-12-15','政法學院','博士','副教授')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('105','李衛國','男','1984-11-24','物理學院','本科','助教')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('106','**','男','1970-11-15','體育學院','研究生','副教授')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('107','趙小雄','男','1978-09-22','石油學院','研究生','講師')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('108','許利利','女','1976-3-10','外語學院','博士','副教授')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('109','錢小君','女','1975-05-25','外語學院','研究生','副教授')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('110','劉洪濤','男','1976-12-27','城建學院','碩士','教授')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('111','呂美新','女','1983-11-11','體育學院','本科','助教')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('112','劉靜','女','1950-12-17','藝術學院','碩士','教授')
insert T(T#,Tname, Tsex, TBirth, DepartName, Degree, TitleOf)
values('113','呂新交','男','1945-12-11','文學院','博士','教授')
----------------------------------------------------------------
--向成績表SC中插入資料
insert SC values('1000',1,108,76.0)
insert SC values('1000',11,100,56.0)
insert SC values('1004',9,108,76.0)
insert SC values('1010',10,109,89.0)
insert SC values('1022',1,108,97.0)
insert SC values('1022',15,104,34.0)
insert SC values('1010',16,100,76.0)
insert SC values('1011',7,100,69.0)
insert SC values('1013',10,109,72.0)
insert SC values('1013',6,110,89.0)
insert SC values('1000',16,103,83.0)
insert SC values('1002',3,107,80.0)
insert SC values('1005',7,100,61.0)
insert SC values('1000',11,101,58.0)
insert SC values('1004',2,106,94.0)
insert SC values('1020',1,108,91.0)
insert SC values('1005',13,100,91.0)
insert SC values('1007',7,108,96.0)
insert SC values('1007',11,101,85.0)
insert SC values('1009',8,100,89.0)
insert SC values('1000',12,107,80.0)
insert SC values('1005',1,108,76.0)
insert SC values('1017',4,102,74.0)
insert SC values('1000',16,103,23.0)
insert SC values('1011',1,108,76.0)
insert SC values('1003',6,100,73.0)
insert SC values('1024',7,104,72.0)
insert SC values('1003',8,109,76.0)
insert SC values('1024',11,100,79.0)
insert SC values('1020',10,109,77.0)
insert SC values('1018',1,108,96.0)
insert SC values('1007',6,110,64.0)
insert SC values('1018',4,111,86.0)
insert SC values('1001',9,109,88.0)
insert SC values('1003',12,101,89.0)
insert SC values('1020',5,101,80.0)
----------------------------------------------
------------2.修改資料表--------
---建立一個用於修改的資料表Text
if OBJECT_ID('Test') is not null
drop table Test
create table Test
(
F1 char(6)
)
go
exec sp_help Test
go
--新增欄位
alter table Test add F3 real
alter table Test add F4 real default 0.0
alter table Test add F5 real not null
alter table test add F6 real default 0.0
go
exec sp_help Test
go
----修改表名
exec sp_rename 'Test','Test_new'
go
exec sp_rename 'Test_new','Test'
go
-----修改欄位
exec sp_rename 'Test.F1','F2','column'
go
-----修改字元型別,是否為空
alter table Test alter column F2 char(2)
alter table Test alter column F2 int not null
----給欄位加預設約束
alter table Test add constraint df_F2 default 0 for F2
---給欄位加檢查約束
alter table Test add constraint ck_F2 check(F2>=0 and F2<=100)
go
exec sp_help Test
go
---刪除約束
alter table Test drop constraint df_F2,ck_F2
---刪除欄位
alter table Test drop column F2
go
exec sp_help Test
go
------3.刪除資料表-----
drop table Test
---------------------------更多演示----
---建立新表so 其表結構與S完全相同
if OBJECT_ID('so') is not null
drop table so
select * into so from S where 1=0
go
---向表so中新增記錄
insert so(S#,Sname,Sbirth,Ssex)
values ('1027','張峰','1900-09-08','男')
--
insert so
select *from S
select *from so
go
--修改表so的備註
update so set Note='漢族'
update so
set EntranceDate ='2007-08-09'
where Place ='北京'
---刪除表
drop table so
--------------------------------------------------------------------
---============================================================-----------------資料庫查詢-------------------
-----01.選擇指定列
--查詢學生學號,姓名,院系
select S#,Sname,DepartName
from S
--
select T#, Tname ,Degree
from T
-----02.查詢所有列
select *
from C
或
select C#,Cname ,Credit,note
from C
-----03.定義別名
---只修改查詢顯示,而不修改資料表的列名
select S# 學號,Sname 姓名,DepartName 學院名稱
from S
----04替換結果中的資料
---查詢時可呼叫函式形成新列
select Sname,DATEDIFF (YEAR,Sbirth,GETDATE()) 年齡
from S
---使用case語句
select S#,C#,Grade ,Kind=
case
when Grade>=80 then '優秀'
when Grade<=60 then '及格'
else '不及格'
end
from SC
select S#,C#,Grade,
case
when Grade>=80 then '優秀'
when Grade<=60 then '不及格'
else '不及格'
end Kind
from SC
--消除結果中重複行
select distinct Departname
from S
go
--限制結果返回行數
select top 3 *
from T
select top 5 Sname,Ssex
from S
go
--限制結果返回行條件
select S#,C#,Grade
from SC
where Grade<60 and C#=7
go
--
select Sname
from S
where Departname = '計算機學院'
and Ssex = '男'
and DATEDIFF (YEAR,Sbirth,GETDATE())<20
go
--限制取值
select *
from S
where Departname in ('計算機學院','外語學院') --where Departname ='計算機學院' or Departname ='外語學院'--
go
--限制範圍
select *
from T
where YEAR(Tbirth) between 1970 and 1979
go
--模式匹配
select *
from S
where Sname like '王%' and Ssex = '男'
go
--
select *
from T
where Tname like '張%'and LEN(Tname)=3
go
--
select *
from T
where Tname like '[^張]%'
go
--
select *
from T
where Tname like '%小%'and LEN(Tname)=3
go
-----連線
---查詢每個學號選修課課程資訊
select Sname,Cname,Grade
from S ,SC,C
where S.S#=SC.S# and SC.C# = C.C#
go
--
select Sname,Cname,Grade
from S inner join SC on S.S# = SC.S#
inner join C on SC.C# = C.C#
go
--查詢外語學院學生選修課但分數不及格的資訊
select Sname ,Cname,Grade
from S,C,SC
where S.S# =SC.S# and SC.C# = C.C#
and Grade<60 and Departname = '外語學院'
go
--查詢課程名以‘數’開頭的課程被學生選修的資訊
select C.C#,Cname
from S inner join SC on S.S# = SC.S#
inner join C on SC.C# = C.C#
where Cname like '數%'
go
--
select S# ,Cname
--from C left join SC on C.C#=SC.C#
from C right join SC on C.C#=SC.C#
go
--
select Sname,Cname
from S CROSS JOIN C
go
-----資料彙總
--統計5選修課程的學號的學生的總分,平均分、最高分、最低分
select SUM(Grade),AVG(Grade),MAX(Grade),MIN(Grade)
from SC
where C#=5
go
--
select COUNT(*),COUNT(Grade)
from SC
where C#=1
go
--
select *
from S
where Departname ='外語學院'
compute count(S#)
go
----排序
--查詢1號課程的學生,並按分數的高低排序輸出學生的學號和分數
select S#,Grade
from SC
where C#=1
order by Grade desc
go
相關文章
- 學生成績管理系統
- 【練習】學生成績管理系統
- Django學生資訊管理系統(6)學生成績新增和學生成績查詢(多對對關係)Django
- python學生成績管理系統【完整版】Python
- 一個簡單的學生成績管理程式 (轉)
- 學生成績管理系統——課程設計報告
- python mysql實現學生成績管理系統蠖脲PythonMySql
- 利用pandas進行資料清洗,利用神經網路預測成績(參考資料酷客,學生成績預測)神經網路
- sql統計-關於學生成績SQL
- PTA (學生成績讀取與排序)排序
- 學生成績判斷函式介面函式
- 資料庫學習:許可權管理資料庫
- PostgreSQL學習手冊(資料庫管理)SQL資料庫
- C語言陣列求學生成績C語言陣列
- 資料庫學習筆記1(資料管理歷史)資料庫筆記
- 資料庫PostrageSQL-管理資料庫資料庫SQL
- 資料庫管理資料庫
- C語言連結串列實現的簡易學生成績管理系統C語言
- 一個簡單的學生成績管理程式(二叉樹實現) (轉)二叉樹
- MySQL資料庫資料管理MySql資料庫
- 騰訊雲資料庫2021年成績單!資料庫
- 資料庫管理(ZT)資料庫
- Oracle資料庫管理Oracle資料庫
- 資料庫的管理資料庫
- 資料庫⽇志管理資料庫
- 【PTA】 學生成績錄入及查詢 (20分)
- C++實現學生成績資訊登記表C++
- Excel做網頁 學生成績網上查(轉)Excel網頁
- 資料庫主鍵 ID 生成策略資料庫
- .NET之生成資料庫全流程資料庫
- 基於java jsp的大學生成績管理系統JavaJS
- Java Swing+Mysql+beautyEye(介面優美)學校成績管理系統(管理員/學生/教師,資訊管理/選課管理/成績管理)JavaMySql
- 資料庫界的Swagger:一鍵生成資料庫文件!資料庫Swagger
- IT專案管理 與 資料庫管理專案管理資料庫
- 用Powerdesigner的PDM生成資料庫及逆向生成資料庫
- 資料庫歷史資料有效管理資料庫
- 萬里GreatDB資料庫的學習之路--GreatDB資料庫的管理和使用(2)資料庫
- 資料庫雲容量管理資料庫