創(chuàng)建一張成績(jī)表和課程表。
- 學(xué)習(xí)方法
- 2023-05-16 17:45:40
MySQL問(wèn)題,在一個(gè)學(xué)生信息系統(tǒng)中,分別創(chuàng)建學(xué)生表、課程表、成績(jī)表,求大神解惑
你要建3個(gè)表呀,然后分別這下列名,旁邊也有個(gè)null別選它就不會(huì)唯空,點(diǎn)擊列名旁邊的框框,再右建就可以設(shè)置主外鍵。數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)學(xué)生表
SQL語(yǔ)言創(chuàng)建數(shù)據(jù)庫(kù)和學(xué)生表
建立:
[sql]
create database zxl
create table 學(xué)生表
(
學(xué)號(hào) char(12) primary key,
姓名 char(6) not null,
性別 char(2) check(性別 IN ('男','女')),
班級(jí) char(15)
)
create table 成績(jī)表
(
學(xué)號(hào) char(12)references 學(xué)生表(學(xué)號(hào)),
課程號(hào) char(2)references 課程表(課程號(hào)) ,
成績(jī) int default(30),
primary key (學(xué)號(hào),課程號(hào))
)
create table 課程表
(
課程號(hào) char(2) primary key,
課程名 char(20),
學(xué)分 int check(學(xué)分>=1 and 學(xué)分<=5 )
)
操作:
[sql]
insert into 學(xué)生表 values('201190609112','張xl','男','文專(zhuān)計(jì)1111')
insert into 學(xué)生表 values('201190609113','張**','女','文專(zhuān)計(jì)1111')
insert into 成績(jī)表 values('201190609112','01',100)
insert into 成績(jī)表 values('201190609112','02',99)
insert into 成績(jī)表 values('201190609112','03',88)
insert into 課程表 values('01','數(shù)據(jù)庫(kù)系統(tǒng)',3)
insert into 課程表 values('02','vb.net',4)
insert into 課程表 values('03','java',4)
select *from 成績(jī)表
select 姓名,課程名,成績(jī)
from 學(xué)生表,課程表,成績(jī)表
where (學(xué)生表.學(xué)號(hào)=成績(jī)表.學(xué)號(hào) and 課程表.課程號(hào)=成績(jī)表.課程號(hào))
order by 成績(jī) desc
select avg(成績(jī)) 平均分,max(成績(jī)) 最高分,min(成績(jī)) 最低分
from 成績(jī)表
where 學(xué)號(hào)='201190609112
創(chuàng)建一個(gè)名為教學(xué)管理的數(shù)據(jù)庫(kù)創(chuàng)建學(xué)生表要求定義主碼
一、簡(jiǎn)答
1、DBA的職責(zé)是什么?
2、視圖的作用有哪些?
3、數(shù)據(jù)庫(kù)的完整性和安全性有什么區(qū)別?
4、SQL語(yǔ)言的特點(diǎn)是什么?
5、數(shù)據(jù)字典通常包括哪幾部分?
6、什么是基本表,什么是視圖,二者的區(qū)別和聯(lián)系是什么?
7、DBMS的主要功能是什么?
8、什么是數(shù)據(jù)庫(kù)備份和恢復(fù)?為什么要備份和恢復(fù)數(shù)據(jù)庫(kù)?
9. 什么是事務(wù)?事務(wù)的作用?SQL中事務(wù)的語(yǔ)法結(jié)構(gòu)是怎樣的?
10、舉出實(shí)體之間具有一對(duì)一、一對(duì)多、多對(duì)多的聯(lián)系的例子。
11、 數(shù)據(jù)庫(kù)的并發(fā)操作會(huì)帶來(lái)哪些問(wèn)題?如何解決?
12、什么是日志文件?簡(jiǎn)述日志文件恢復(fù)事務(wù)的過(guò)程(即:事務(wù)故障的恢復(fù)的過(guò)程)。
13、關(guān)系完整性約束規(guī)則有哪三類(lèi)?
14、 數(shù)據(jù)庫(kù)管理技術(shù)發(fā)展的三個(gè)階段?
15、寫(xiě)出數(shù)據(jù)庫(kù)的設(shè)計(jì)的五個(gè)階段。
16、根據(jù)3NF的定義及規(guī)范化方法,對(duì)關(guān)系模式R(U,F(xiàn)) U={學(xué)號(hào),姓名,所在系,系主 任,課程號(hào),成績(jī)} F= { 學(xué)號(hào) → 姓名 , 學(xué)號(hào) → 所在系,所在系 → 系主任(學(xué)號(hào),課程 號(hào)) → 成績(jī)} 進(jìn)行分解,使其滿(mǎn)足3NF。
17、 什么是事務(wù)?事務(wù)有哪些特征?
18、寫(xiě)出關(guān)系型數(shù)據(jù)庫(kù)的第一、第二、第三范式的各自要求。
19、舉三個(gè)例子分別說(shuō)明二元聯(lián)系的三種情況( 1:1、1:M、M:N ) 。
運(yùn)行sql文件出錯(cuò)
解決辦法:使用Notepad++打開(kāi)文件,選擇 格式->無(wú)BOM的UTF8格式編碼
創(chuàng)建學(xué)生成績(jī)表試圖(學(xué)號(hào),姓名,課程號(hào),課程名,學(xué)分,成績(jī),教師姓名)。
視圖:任何不適邏輯模型的一部分,但作為序關(guān)系對(duì)用戶(hù)可見(jiàn)的關(guān)系就叫視圖 所以你要建立表:學(xué)生選課信息表,課程表,(可能你的題目已經(jīng)定義了表,那樣子的話就按題目的要求做)利用表的關(guān)系連接起來(lái)就成了視圖 create table 學(xué)生選課信息表 (學(xué)號(hào),姓名,課程號(hào),學(xué)分,成績(jī)) create table 課程表 (課程號(hào),課程名,教師姓名) 視圖創(chuàng)建 create view 學(xué)生成績(jī)表 as selcet 學(xué)號(hào),姓名,課程號(hào),課程名,學(xué)分,成績(jī),教師姓名 from 學(xué)生選課信息表,課程表 where 學(xué)生選課信息表.課程號(hào)=課程表.課程號(hào)創(chuàng)建學(xué)生成績(jī)表,怎樣更好?
先說(shuō)你的這個(gè)問(wèn)題: “數(shù)據(jù)很大時(shí),會(huì)影響查詢(xún)時(shí)間,好像叫什么數(shù)據(jù)冗余” 從理論上來(lái)說(shuō)確實(shí)是這樣的。但是從實(shí)際來(lái)說(shuō),我們看到的效果都是一樣的,現(xiàn)在的PC機(jī)處理能力都是相當(dāng)強(qiáng)。如果你還在用286可能有一些區(qū)別。除非你在一張表中包括了全國(guó)學(xué)生的數(shù)據(jù),那才叫“很大”。 然后是做表的問(wèn)題: 要先看你做表是為了處理什么問(wèn)題,還有數(shù)據(jù)量的大小。 如果只是某個(gè)班級(jí)的學(xué)生情況,可以就用一張表,把所有字段都包含在內(nèi)。由于數(shù)據(jù)不多,這樣更直觀,使用也更方便。如果你需要的統(tǒng)計(jì)的情況很多(比如還要“出生日期”,家庭住址,等等等等),用兩張表就夠了,一個(gè)“學(xué)生基本情況”,一個(gè)“學(xué)生成績(jī)”。兩個(gè)表以學(xué)號(hào)建立關(guān)聯(lián)。 如果是統(tǒng)SQL創(chuàng)建學(xué)生表(Student)、課程表(Course)、班級(jí)表(Class)、選課表(XK),寫(xiě)對(duì)的我可以獎(jiǎng)勵(lì)QB
1,從學(xué)生SELECT DISTINCT Sdept; 2,SELECT COUNT(DISTINCT Cpno) 課程 WHERE CNAME ='英語(yǔ)'; 3,CREATE TABLE Student2 (SNO CHAR(9)PRIMARY KEY, SNAME CHAR(20)UNIQUE, Ssex CHAR(2), Sbirthday SMALLINT, Sdept CHAR(20) );下一篇
返回列表