" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle數(shù)據(jù)庫實現(xiàn)建表、查詢方式

 更新時間:2024年04月01日 17:00:21   作者:manhoho  
這篇文章主要介紹了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.查詢出沒有學生考試的課程名稱

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • navicat導入oracle導出的dmp文件

    navicat導入oracle導出的dmp文件

    現(xiàn)在工作中常用Oracle數(shù)據(jù)庫,但是查詢工具還是Navicat最好用,不論是數(shù)據(jù)導入導出,還是執(zhí)行語句,都很清晰明了,下面這篇文章主要給大家介紹了關于navicat導入oracle導出的dmp文件的相關資料,需要的朋友可以參考下
    2023-05-05
  • Oracle存儲過程的幾種調(diào)用方式圖文詳解

    Oracle存儲過程的幾種調(diào)用方式圖文詳解

    存儲過程是一個預編譯的SQL語句,優(yōu)點是允許模塊化的設計,就是說只需創(chuàng)建一次,以后在程序中就可以調(diào)用多次,下面這篇文章主要給大家介紹了關于Oracle存儲過程的幾種調(diào)用方式,需要的朋友可以參考下
    2023-04-04
  • Oracle以逗號分隔的字符串拆分為多行數(shù)據(jù)實例詳解

    Oracle以逗號分隔的字符串拆分為多行數(shù)據(jù)實例詳解

    做多選功能時為了簡便,會在某個字段中存儲多個值,保存時雖然省事,但后續(xù)的查詢統(tǒng)計時還需要拆分數(shù)據(jù)才行,因此這時需要將字段內(nèi)的值分成多行以便后續(xù)使用,這篇文章主要給大家介紹了關于Oracle以逗號分隔的字符串拆分為多行數(shù)據(jù)的相關資料,需要的朋友可以參考下
    2021-07-07
  • oracle數(shù)據(jù)庫查詢所有表名和注釋等

    oracle數(shù)據(jù)庫查詢所有表名和注釋等

    這篇文章主要給大家介紹了關于oracle數(shù)據(jù)庫查詢所有表名和注釋等的相關資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用oracle具有一定的參考學習價值,需要的朋友可以參考下
    2023-04-04
  • Oracle導出導入表結構操作實戰(zhàn)記錄

    Oracle導出導入表結構操作實戰(zhàn)記錄

    在日常數(shù)據(jù)庫維護中,經(jīng)常會遇到導出數(shù)據(jù)表的需求,下面這篇文章主要給大家介紹了關于Oracle導出導入表結構操作的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02
  • Oracle9i 動態(tài)SGA,PGA特性探索

    Oracle9i 動態(tài)SGA,PGA特性探索

    雖然Oracle9i中的內(nèi)存管理仍然需要很多的手工操作,不過大部分的Oracle管理員可以使用工具來連續(xù)地監(jiān)控Oracle SGA中的內(nèi)存使用,并且可以根據(jù)Oracle instance中現(xiàn)在的使用情況來自動地重新分配內(nèi)存。
    2009-03-03
  • 實現(xiàn)oracle數(shù)據(jù)庫字段自增長(兩種方式)

    實現(xiàn)oracle數(shù)據(jù)庫字段自增長(兩種方式)

    這篇文章主要通過兩種方式實現(xiàn)oracle數(shù)據(jù)庫字段自增長,第一種方式是序列+觸發(fā)器,第二種方式序列+顯示調(diào)用序列,需要的朋友可以參考下
    2015-07-07
  • oracle中merge into用法及實例解析

    oracle中merge into用法及實例解析

    這篇文章主要介紹了oracle中merge into用法及實例解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 關于Oracle Dataguard 日志傳輸狀態(tài)監(jiān)控問題

    關于Oracle Dataguard 日志傳輸狀態(tài)監(jiān)控問題

    ORACLE DATAGUARD的主備庫同步,主要是依靠日志傳輸?shù)絺鋷欤瑐鋷鞈萌罩净驓w檔來實現(xiàn)。這篇文章主要給大家介紹了關于Oracle Dataguard 日志傳輸狀態(tài)監(jiān)控問題,感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • 詳細聊聊Oracle表碎片對性能有多大的影響

    詳細聊聊Oracle表碎片對性能有多大的影響

    當針對一個表的刪除操作很多時,表會產(chǎn)生大量碎片,下面這篇文章主要給大家介紹了關于Oracle表碎片對性能影響的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03

最新評論