MySQL學習(4)多表查詢

1.創建student和score表

CREATE? TABLE? student (

id? INT(10)? NOT NULL? UNIQUE? PRIMARY KEY? ,

name? VARCHAR(20)? NOT NULL ,

sex? VARCHAR(4)? ,

birth? YEAR,

department? VARCHAR(20) ,

address? VARCHAR(50)?

);

創建score表。SQL代碼如下:

CREATE? TABLE? score (

id? INT(10)? NOT NULL? UNIQUE? PRIMARY KEY? AUTO_INCREMENT ,

stu_id? INT(10)? NOT NULL ,

c_name? VARCHAR(20) ,

grade? INT(10)

);

2.為student表和score表增加記錄

向student表插入記錄的INSERT語句如下:

INSERT INTO student VALUES( 901,'張老大', '男',1985,'計算機系', '北京市海淀區');

INSERT INTO student VALUES( 902,'張老二', '男',1986,'中文系', '北京市昌平區');

INSERT INTO student VALUES( 903,'張三', '女',1990,'中文系', '湖南省永州市');

INSERT INTO student VALUES( 904,'李四', '男',1990,'英語系', '遼寧省阜新市');

INSERT INTO student VALUES( 905,'王五', '女',1991,'英語系', '福建省廈門市');

INSERT INTO student VALUES( 906,'王六', '男',1988,'計算機系', '湖南省衡陽市');

向score表插入記錄的INSERT語句如下:

INSERT INTO score VALUES(NULL,901, '計算機',98);

INSERT INTO score VALUES(NULL,901, '英語', 80);

INSERT INTO score VALUES(NULL,902, '計算機',65);

INSERT INTO score VALUES(NULL,902, '中文',88);

INSERT INTO score VALUES(NULL,903, '中文',95);

INSERT INTO score VALUES(NULL,904, '計算機',70);

INSERT INTO score VALUES(NULL,904, '英語',92);

INSERT INTO score VALUES(NULL,905, '英語',94);

INSERT INTO score VALUES(NULL,906, '計算機',90);

INSERT INTO score VALUES(NULL,906, '英語',85);

1.查詢student表的所有記錄?

select * from student ;

2.查詢student表的第2條到4條記錄?

查詢連續的多行記錄(第n~m行)select * from table1  limit n-1,m-n+1;

select * from student limit 1,3;

3.從student表查詢所有學生的學號(id)、姓名(name)和院系(department)的信息

select id,name,department from student;

4.從student表中查詢計算機系和英語系的學生的信息?

select * from student where department = '英語系' or department = ' 計算機系';

5.從student表中查詢年齡18~22歲的學生信息?

select * from student where birth < 2003 and birth > 1999 ;

簡單做個減法 當前時間 - 18 or 22? 要注意大小。

6.從student表中查詢每個院系有多少人?

select department,count(1) from student? group by department;

7.從score表中查詢每個科目的最高分?

select c_name,max(grade) from score group by c_name;

8.查詢李四的考試科目(c_name)和考試成績(grade)?

select c_name,grade
??? -> from score where stu_id=
??? -> (select id from student
??? -> where name = '李四');

9.用連接的方式查詢所有學生的信息和考試信息?

select student.id,name,sex,birth,department,address,c_name,grade from student,score where student.id = score.stu_id;

10.計算每個學生的總成績?

select student.id,name,sum(grade) from student,score where student.idd= score.stu_id group by id;

11.計算每個考試科目的平均成績?

SELECT?c_name,AVG(grade)?FROM?score?GROUP?BY?c_name;

12.查詢計算機成績低于95的學生信息?

select * from student where id in (select stu_id from score where c_name ='計算機' and grade < 95);

13.查詢同時參加計算機和英語考試的學生的信息?

select * from student where id = any(select stu_id from score where stu_id in ( select stu_id from score where c_name = '計算機') and c_name = '英語');

14.將計算機考試成績按從高到低進行排序?

SELECT stu_id, grade? FROM score WHERE c_name= '計算機' ORDER BY grade DESC;

15.從student表和score表中查詢出學生的學號,然后合并查詢結果?

SELECT?id??FROM?student? UNION SELECT?stu_id??FROM?score;

16.查詢姓張或者姓王的同學的姓名、院系和考試科目及成績?

mysql> SELECT student.id, name,sex,birth,department, address, c_name,grade
??? -> FROM student, score
??? -> WHERE
??? ->? (name LIKE? '張%'? OR name LIKE? '王%')
??? -> and student.id=score.stu_id ;

17.查詢都是湖南的學生的姓名、年齡、院系和考試科目及成績

SELECT student.id, name,sex,birth,department, address, c_name,grade FROM student, score WHERE address LIKE '湖南%'?? AND student.id=score.stu_id;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534377.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534377.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534377.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL學習(5)數據庫備份

數據庫備份&#xff0c;數據庫為school&#xff0c;素材如下 1.創建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address …

MySQL(查看數據文件目錄)

show global variables like %datadir%;

mysql在rpm安裝方式下查看隨機生成密碼命令

mysql安裝成功后創建的超級用戶rootlocalhost的密碼會被存儲在/var/log/mysqld.log grep temporary password /var/log/mysqld.log

MySQL(6)視圖

步驟1&#xff1a;創建學生表stu&#xff0c;插入3條記錄。 CREATE TABLE stu ( s_id INT PRIMARY KEY, s_name VARCHAR(20), addr VARCHAR(50), tel VARCHAR(50) ); INSERT INTO stu VALUES(1,XiaoWang,Henan,0371-12345678), (2,XiaoLi,Hebei,13889072345), (3…

MySQL(7)索引

表結構如下&#xff1a; writers表結構 字段名 數據類型 主鍵 外鍵 非空 唯一 自增 w_id SMALLINT(11) 是 否 是 是 是 w_name VARCHAR(255) 否 否 是 否 否 w_address VARCHAR(255) 否 否 否 否 否 w_age CHAR(2) 否 否 是 否 否 w_note VARCHAR(255) 否 否 否 否 否 …

MySQL(8)存儲過程和函數

字段名 數據類型 主鍵 外鍵 非空 唯一 自增 id INT 是 否 是 是 否 name VARCHAR(50) 否 否 是 否 否 glass VARCHAR(50) 否 否 是 否 否 mysql> create table sch (-> id int primary key not null unique,-> name varchar(5…

MySQL(9)主從復制和讀寫分離

1.理解MySQL主從復制原理。 復制是MySQL提供的一直高可用、高性能的解決方案&#xff0c;一般用來建立大型的應用&#xff0c;總體來說&#xff0c;分為以下三步&#xff1a; (1)master將改變記錄到二進制日志(binary log)中&#xff08;這些記錄叫做二進制日志事件&#x…

NoSQL(1)

1、簡述redis應用場景。 Redis 概念&#xff1a;Redis&#xff08;Remote Dictionary Server&#xff09;&#xff0c;即遠程字典服務&#xff0c;是用C語言開發的一個開源的高性能鍵值對&#xff08;key-value&#xff09;數據庫。特征&#xff1a; 數據間沒有必然的聯系內部…

NoSQL(2)

1、string list hash結構中&#xff0c;每個至少完成5個命令&#xff0c;包含插入 修改 刪除 查詢&#xff0c;list 和hash還需要增加遍歷的操作命令 1、 Keys相關的命令操作&#xff1a; &#xff08;1&#xff09; 查看key是否存在&#xff1a; EXISTS name #判斷該鍵是…

NoSQL(3)

1、什么是MongoDB ? MongoDB 是由C語言編寫的&#xff0c;是一個基于分布式文件存儲的開源數據庫系統。 在高負載的情況下&#xff0c;添加更多的節點&#xff0c;可以保證服務器性能。 MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。 MongoDB 將數據存儲為…

Python二級筆記(1)

操作題 1&#xff0c;寬度為30字符&#xff0c;星號字符填充&#xff0c;居中對齊。如果輸入字符串超30位&#xff0c;則全部輸出。 例如:鍵盤輸入字符串q為‘abcd’&#xff0c;屏幕輸出abcd 代碼&#xff1a; s input(請輸入一個字符串&#xff1a;) print({:*^30}.form…

Python二級筆記(2)

知識點&#xff1a; 1&#xff0c;鏈表可以是線性結構也可以是非線性結構 線性表的鏈式存儲結構稱為線性鏈表&#xff1b;鏈表上一種物理存儲單元上非連續&#xff0c;非順序的存儲結構&#xff0c;數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的&#xff0c;鏈表可以說…

Python二級筆記(3)

知識點&#xff1a; 1&#xff0c;排序可以在不同的存儲結構上實現&#xff0c;但快速排序法適于順序存儲的線性表&#xff0c;不適用于鏈式存儲的線性表。 堆棧序適用于線性結構&#xff0c;不適用于非線性結構 2&#xff0c;基本路徑測試根據軟件過程性描述中的控制流確定程…

軟件工程學簡述

軟件危機 軟件危機是指計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。&#xff08;考試中名詞解釋或者選擇題為主&#xff09; 軟件危機的典型表現 &#xff08;1&#xff09;對軟件開發成本和進度的估計常常很不準確。 &#xff08;2&#xff09;用戶對“已完成的…

Python二級筆記(4)

知識點&#xff1a; 1&#xff0c;冒泡排序、快速排序、簡單插入排序、簡單選擇排序在最壞情況下比較次數均為n(n-1)/2&#xff0c;堆排序在最壞情況下比較次數為nlog(2↓)n,在最壞情況下希爾排序需要比較的次數是n(↑r)&#xff08;1<r<2&#xff09;。 2&#xff0c;…

Python二級筆記(5)

知識點&#xff1a; 1&#xff0c;樹的度&#xff0c;及樹中存在的最大度數&#xff1b;如樹的度為3&#xff0c;即樹中只存在度為0&#xff0c;1&#xff0c;2&#xff0c;3的結點。 2&#xff0c;設循環隊列的存儲空間為Q&#xff08;1:m&#xff09;,初始狀態為空。在循環…

Qt圖形界面編程入門(1)

一、類和對象 1&#xff0c;面向過程程序設計&#xff08;自頂向下設計&#xff09; 分析出解決問題所需的步驟&#xff0c;然后用函數把這些步驟一一實現&#xff0c;使用的時候一個一個調用 過程式設計對于比較復雜的問題&#xff0c;或是在開發中需求變化比較多的時候&am…

Qt圖形界面編程入門(2)

二&#xff0c;指針和引用 共同點&#xff1a;它們都代表其他變量占據的某一塊內存區&#xff0c;通過指針或引用都可以對他們代表的其他變量進行操作。 以下語句利用指針對變量賦值&#xff1a; int m; int *p; //指針定義 p &m; //將m的內存地址賦給p *p 5;…

Qt圖形界面編程入門(3)

公有成員和私有成員 從訪問權限上分&#xff0c;類的成員又分為&#xff1a;公有成員&#xff08;public&#xff09;、私有成員&#xff08;private&#xff09;和保護成員&#xff08;protected&#xff09;三類。 公有成員用public來說明。這部分成員可以在程序中通過“…

Qt圖形界面編程入門(4)

構造函數和析構函數 構造函數是一個與類同名的特殊的公有成員函數。 創建類對象時構造函數會被調用&#xff0c;且只調用一次/ 構造函數無返回類型。 默認構造函數格式&#xff1a; 類名&#xff08;&#xff09;{.......} Account(){ //無返回類型&#xff0c;無參數I…