Oracle數(shù)據(jù)庫實現(xiàn)建表、查詢方式
一. 創(chuàng)建三張表
1.學生信息表(stuInfo): 學號(主鍵), 姓名(不能為空), 性別(只能是男或女), 生日
` create table stuInfo( stuInfoID number primary key, stuInfoName varchar2(32) not null, stuInfoSex varchar2(32) not null check(stuInfoSex in('男','女')), stuInfoBrithday date ) /`
2.課程信息表(subInfo):編號(主鍵),課程名(不能為空)
create table subInfo( subInfoID number primary key, subInfoName varchar2(32) not null ) /
3.分數(shù)信息表(scoreInfo):編號(主鍵),學號(外鍵),課程號(外鍵),分數(shù)(0-100之間)
create table scoreInfo( scoreInfoID number primary key, scoreInfo_stuInfoID number references stuInfo(stuInfoID), scoreInfo_subInfoID number references subInfo(subInfoID), score number check(score >= 0 and score <= 100) ) /
二. 分別向三張表中插入數(shù)據(jù),不少于5行
stuInfo表插入數(shù)據(jù):
//stuInfo表 insert into stuInfo values(1,'張三','男',to_date('1990-01-01','yyyy-MM-dd')); insert into stuInfo values(2,'李四','男',to_date('1990-02-01','yyyy-MM-dd')); insert into stuInfo values(3,'王五','女',to_date('1990-03-01','yyyy-MM-dd')); insert into stuInfo values(4,'馬六','男',to_date('1990-04-01','yyyy-MM-dd')); insert into stuInfo values(5,'劉七','女',to_date('1990-05-01','yyyy-MM-dd')); insert into stuInfo values(6,'小明','男',to_date('2003-06-01','yyyy-MM-dd')); insert into stuInfo values(7,'小紅','女',to_date('2002-07-01','yyyy-MM-dd')); insert into stuInfo values(8,'小亮','男',to_date('2002-07-01','yyyy-MM-dd'));
stuInfo表插入數(shù)據(jù)后的效果:
select stuInfoID as 學號,stuInfoName as 姓名,stuInfoSex as 性別,stuInfoBrithday as 生日 from stuInfo;
subInfo表插入數(shù)據(jù):
//subInfo表 insert into subInfo values(1,'語文'); insert into subInfo values(2,'數(shù)學'); insert into subInfo values(3,'英語'); insert into subInfo values(4,'物理'); insert into subInfo values(5,'化學'); insert into subInfo values(6,'生物'); insert into subInfo values(7,'地理'); insert into subInfo values(8,'歷史');
subInfo表插入數(shù)據(jù)后的效果:
select subInfoID as 編號,subInfoName as 課程名 from subInfo;
score表插入數(shù)據(jù):
//score表 insert into scoreInfo values(1,1,1,95); insert into scoreInfo values(2,2,2,97); insert into scoreInfo values(3,3,3,100); insert into scoreInfo values(4,4,4,86); insert into scoreInfo values(5,5,5,89); insert into scoreInfo values(6,6,6,91); insert into scoreInfo values(7,7,7,93); insert into scoreInfo values(8,8,8,90);
scoreInfo表插入數(shù)據(jù)后的效果:
select scoreInfoId as 編號,scoreInfo_stuInfoID as 學號,scoreInfo_subInfoID as 課程號,score as 分數(shù) from scoreInfo;
三. 創(chuàng)建新表stu1并將stuinfo中的性別為女的學生的學號
姓名和性別的信息插入到該表中
create table stu1 as select stuInfoId,stuInfoName,stuInfoSex from stuInfo where stuInfoSex='女';
效果:
select stuInfoId as 學號,stuInfoName as 姓名,stuInfoSex as 性別 from stu1;
四. 完成下列查詢
1.查詢所有姓張的學員信息(模糊查詢)
select stuInfoId as 學號,stuInfoName as 姓名,stuInfoSex as 性別 ,stuInfoBrithday as 生日 from stuInfo where stuInfoName like '張%';
2.查詢所有20歲以上的學員信息(用日期函數(shù)實現(xiàn))
select stuInfoId as 學號,stuInfoName as 姓名,stuInfoSex as 性別 ,stuInfoBrithday as 生日 from stuInfo where months_between(sysdate,stuInfoBrithday)/12>20;
3.查詢同一天出生的學員信息(表連接)
select a .stuInfoID as 編號,a.stuInfoName as 姓名,a.stuInfoSex as 性別,a.stuInfoBrithday as 生日,b.score as 成績 from stuInfo a left join scoreInfo b on a.stuInfoID = b.scoreInfoID where a.stuInfoBrithday in (select stuInfoBrithday from stuInfo group by stuInfoBrithday having count(stuInfoBrithday)>1);
4.查詢參加考試的所有學員的名稱,科目和成績(按成績排序)
select c.scoreInfoID as 學生編號,a.stuInfoName as 學生姓名,b.subInfoName as 課程名稱 ,c.score as 課程成績 from stuInfo a,subInfo b,scoreInfo c where a.stuInfoID = c.scoreInfo_stuInfoID and b.subInfoID = c.scoreInfo_subInfoID order by c.score asc;
5.查詢所有沒有參加考試的學員學號,姓名,只要有1門課沒考都要查詢出來(子查詢)
select stuInfoID as 學員學號,stuInfoName as 姓名 from stuInfo where stuInfoID = (select scoreInfo_stuInfoID from scoreInfo where score is null);
6.查詢出沒有學生考試的課程名稱
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
部署Oracle 12c企業(yè)版數(shù)據(jù)庫( 安裝及使用)
這篇文章主要介紹了部署Oracle 12c企業(yè)版數(shù)據(jù)庫( 安裝及使用),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11oracle數(shù)據(jù)庫在客戶端建立dblink語法
oracle服務器沒有建立目標數(shù)據(jù)庫的TNS時,在客戶端(有權(quán)限的情況下)建立dblink語法如下,有需求的朋友可以參考下哈2013-05-05oracle ORA-01114、ORA-27067錯誤解決方法
本文章總結(jié)了關(guān)于ORA-01114、ORA-27067錯誤解決方法,有需要學習的朋友可參考一下下哦2012-10-10DBF 文件恢復 ORACLE 數(shù)據(jù)庫的方法
這篇文章主要介紹了DBF 文件 ORACLE 數(shù)據(jù)庫恢復的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01