日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

数据库系统(一)——数据查询

發(fā)布時(shí)間:2024/9/30 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库系统(一)——数据查询 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

        • 一、實(shí)驗(yàn)?zāi)康?#xff1a;
        • 二、實(shí)驗(yàn)內(nèi)容:
        • 三、實(shí)驗(yàn)過(guò)程:
          • 1、創(chuàng)建學(xué)生課程數(shù)據(jù)庫(kù) (stu_course):
          • 2、學(xué)生表、課程表和學(xué)生選課表的創(chuàng)建和修改:
            • 2.1、創(chuàng)建數(shù)據(jù)表:
            • 2.2、修改數(shù)據(jù)表:
          • 3、插入數(shù)據(jù):
          • 4、各種類(lèi)型的查詢(xún)操作:
            • 4.1 、單表查詢(xún)操作:
            • 4.2 、多表連接查詢(xún)操作:
            • 4.3 、嵌套查詢(xún)操作:
        • 四、總結(jié):

一、實(shí)驗(yàn)?zāi)康?#xff1a;

  • 熟練掌握SQL定義數(shù)據(jù)表和索引的方法;

  • 能夠使用SQL完成數(shù)據(jù)的單表查詢(xún)、多表查詢(xún)和嵌套查詢(xún)操作。

  • 二、實(shí)驗(yàn)內(nèi)容:

  • 根據(jù)指定場(chǎng)景創(chuàng)建數(shù)據(jù)庫(kù);

  • 根據(jù)具體的查詢(xún)應(yīng)用需求寫(xiě)出相應(yīng)的SQL查詢(xún)語(yǔ)句,并得到正確的查詢(xún)結(jié)果。
    1、熟悉基于單表的SQL的數(shù)據(jù)查詢(xún)功能;
    2、掌握基于單表的GROUP BY子句、HAVING子句、ORDER BY子句的用法;
    3、掌握基于單表的(NOT)IN等謂詞的用法,掌握集合函數(shù)的用法;
    4、掌握多表連接查詢(xún)的適用情況和語(yǔ)句構(gòu)造方法;

  • 三、實(shí)驗(yàn)過(guò)程:

    1、創(chuàng)建學(xué)生課程數(shù)據(jù)庫(kù) (stu_course):
    create database stu_course;
    2、學(xué)生表、課程表和學(xué)生選課表的創(chuàng)建和修改:
    2.1、創(chuàng)建數(shù)據(jù)表:
    create table Student(Sno char(9)primary key,Sname char(20)unique,Ssex char(2),Sage smallint,Sdept char(20) );create table Course (Cno char(4)primary key,Cname char(4) not null,Cpno char(4),Ccredit smallint ,foreign key(Cpno) references Course(Cno) );create table SC(Sno char(9),Cno char(4),Grade smallint,primary key(Sno,Cno),foreign key(Sno) references Student(Sno),foreign key(Cno) references Course(Cno) );
    2.2、修改數(shù)據(jù)表:

    在 Student 表增加入學(xué)時(shí)間列,數(shù)據(jù)類(lèi)型為日期型:

    alter table Student add S_entrance Date;

    將年齡的數(shù)據(jù)類(lèi)型 由 字符型(假設(shè)原來(lái)是字符型)改為 整數(shù)型:

    alter table Student alter column Sage int;

    增加課程名稱(chēng)必須取唯一的約束條件:

    alter table Course add unique(Cname);

    刪除 Student表:

    drop table Student;
    3、插入數(shù)據(jù):
    INSERT INTO student VALUES ('201215121', '李勇', '男', 20, 'CS'); INSERT INTO student VALUES ('201215122', '劉晨', '女', 19, 'CS'); INSERT INTO student VALUES ('201215123', '王敏', '女', 18, 'MA'); INSERT INTO student VALUES ('201215125', '張立', '男', 19, 'IS');INSERT INTO course VALUES ('1', '數(shù)據(jù)庫(kù)', '5', 4); INSERT INTO course VALUES ('2', '數(shù)學(xué)', NULL, 2); INSERT INTO course VALUES ('3', '信息系統(tǒng)', '1', 4); INSERT INTO course VALUES ('4', '操作系統(tǒng)', '6', 3); INSERT INTO course VALUES ('5', '數(shù)據(jù)結(jié)構(gòu)', '7', 4); INSERT INTO course VALUES ('6', '數(shù)據(jù)處理', NULL, 2); INSERT INTO course VALUES ('7', 'PASCAL語(yǔ)言', '6', 4);INSERT INTO sc VALUES ('201215121', '1', 92); INSERT INTO sc VALUES ('201215121', '2', 85); INSERT INTO sc VALUES ('201215121', '3', 88); INSERT INTO sc VALUES ('201215122', '2', 90); INSERT INTO sc VALUES ('201215122', '3', 80);
    4、各種類(lèi)型的查詢(xún)操作:
    4.1 、單表查詢(xún)操作:

    1、查詢(xún)指定列

    查詢(xún)所有學(xué)生的的學(xué)號(hào)與姓名:

    select Sno,Sname from Student;

    2、查詢(xún)?nèi)苛?/strong>:

    查詢(xún)所有學(xué)生的信息:

    select * from Student;

    3、查詢(xún)經(jīng)過(guò)計(jì)算的值

    查詢(xún)?nèi)w學(xué)生的姓名和出生年份:

    select Sname 2021-Sage from Student;


    4、消除出重復(fù)的元組

    select Distinct Sno from Student;

    5、查詢(xún)滿(mǎn)足條件的元組

    查詢(xún)計(jì)算機(jī)科學(xué)系的所有學(xué)生:

    select Sname from Student where sdept='CS';

    查詢(xún)年齡小于20的學(xué)生:

    select * from student where Sage <20;

    查詢(xún)年齡在20~23歲之間的學(xué)生姓名,系別和年齡:

    select sname,sdept,sage from student where sage between 20 and 23;

    查詢(xún)年齡不在20~23歲之間的學(xué)生姓名,系別和年齡:

    select sname,sdept,sage from student where sage not between 20 and 23;

    6、確定集合(IN)

    查詢(xún) 計(jì)算機(jī)科學(xué)系(CS),數(shù)學(xué)系(MA)和信息系(IS)學(xué)生的姓名和性別。

    select Sname,Ssex from student where Sdept in('CS','MA','IS');

    查詢(xún)不是計(jì)算機(jī)科學(xué)系(CS),數(shù)學(xué)系(MA)和信息系(IS)學(xué)生的姓名和性別。

    select Sname,Ssex from student where Sdept not in('CS','MA','IS');

    7、字符匹配(模糊查詢(xún))

    like :字符串匹配 % :代表任意長(zhǎng)度字符 _ :代表單個(gè)字符

    查詢(xún)學(xué)號(hào)為 201215121 的學(xué)生的信息:

    select * from where Sno like '201215121';

    查詢(xún)所有姓劉的學(xué)生姓名,學(xué)號(hào)和性別:

    select Sname,Sno,Ssex from student where Sname like'劉%'

    查詢(xún)不姓劉的學(xué)生姓名,學(xué)號(hào)和性別:

    select Sname,Sno,Ssex from student where Sname not like'劉%'

    查詢(xún)名字中第二個(gè)字為 "陽(yáng)"的學(xué)生的姓名,學(xué)號(hào):

    select Sname,Sno from student where Sname like'_陽(yáng)%';

    8、多重條件查詢(xún)(and ,or)

    查詢(xún)計(jì)算機(jī)系的年齡20歲以下的學(xué)生的學(xué)生姓名:

    select Sname from student where Sdept='CS' and Sage < '20';

    9、order by

    查詢(xún)選了3號(hào)課程的學(xué)生的學(xué)號(hào)和成績(jī),按成績(jī)的降序排列(默認(rèn)升序):

    select Sno,Grade from SC where Cno='3' order by Grade DESC;

    10、聚集函數(shù)

    count(*) 統(tǒng)計(jì)元組個(gè)數(shù) count([distinct|all] <列名>) 統(tǒng)計(jì)一列中值的個(gè)數(shù) Sum([distinct|all] <列名>) 求一列總和 Max([distinct|all] <列名>) 求一列中的最大值 Min([distinct|all] <列名>) 求一列中的最小值 Avg([distinct|all] <列名>) 求一列的平均值

    查詢(xún)學(xué)生總?cè)藬?shù):

    select count(*) from student;

    查詢(xún)選修了課程的總?cè)藬?shù):

    select count(distinct Sno) from student;

    查詢(xún)學(xué)生 201215012 選修課程的總分?jǐn)?shù):

    select sum(Ccredit) from SC,Course where Sno='201215121' and SC.Cno = Course.Cno;

    11、分組(group by)

    求各個(gè)課程號(hào)及相應(yīng)的選課人數(shù):

    select Cno,count(*) from SC group by Cno;

    如果分組后還要求按一定的條件對(duì)這些組進(jìn)行篩選,可以使用 having指定篩選條件。

    查詢(xún)選修了一門(mén)以上課程的學(xué)生學(xué)號(hào):

    select Sno from SC group by Sno having count(*)>1;

    注意:where 子句中是不能用聚集函數(shù)的!需要用 having 代替

    4.2 、多表連接查詢(xún)操作:

    一次從兩個(gè)及以上的表 查數(shù)據(jù)稱(chēng)為連接查詢(xún)。

    查詢(xún)每個(gè)學(xué)生及其選修課程的情況:

    select student.*,SC.* from student,SC where student.Sno=SC.Sno;

    查詢(xún)選修2號(hào)課程且成績(jī)?cè)?0分以上的所有學(xué)生的學(xué)號(hào)和姓名:

    select student.Sno,Sname from Student,SC where Student.Sno=SC.Sno and SC.Cno='2' and SC.Grade>90;
    4.3 、嵌套查詢(xún)操作:

    四、總結(jié):

    • HAVING 是跟GROUP BY 連在一起用的,放在GROUP BY 后面,此時(shí)的作用相當(dāng)于WHERE。

    • WHERE 后面的條件中不能有聚集函數(shù),比如SUM(),AVG()等,而HAVING 可以

    總結(jié)

    以上是生活随笔為你收集整理的数据库系统(一)——数据查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。