Java mysql特殊形式的查詢語句詳解
創(chuàng)建新表:
-- 創(chuàng)建學(xué)員表
CREATE TABLE IF NOT EXISTS stu(
id TINYINT UNSIGNED AUTO_INCREMENT KEY COMMENT '編號(hào)',
username VARCHAR(20) NOT NULL UNIQUE COMMENT '學(xué)員名稱',
score TINYINT UNSIGNED NOT NULL COMMENT '學(xué)員考試分?jǐn)?shù)'
)ENGINE=INNODB;
INSERT stu(username, score) VALUES('king', 95),
('queen', 75),
('zhangsan', 69),
('lisi', 78),
('wangwu', 87),
('zhaoliu', 88),
('tianqi', 98),
('ceshi', 99),
('tiancai', 50);
-- 創(chuàng)建分?jǐn)?shù)級(jí)別表
CREATE TABLE IF NOT EXISTS `level`(
id TINYINT UNSIGNED AUTO_INCREMENT KEY COMMENT '編號(hào)',
score TINYINT UNSIGNED COMMENT '分?jǐn)?shù)'
)ENGINE=INNODB;
INSERT `level`(score) VALUES(90), (80), (70);
1. 子查詢
1.1. SELECT 字段名稱 FROM 表名 WHERE 字段名稱 = (SELECT 字段名稱 FROM 表名);
1.2. 內(nèi)層語句查詢的結(jié)果可以作為外層語句查詢的條件
1.3. 由IN引發(fā)的子查詢
SELECT * FROM user1 WHERE depId IN (1, 2, 3, 4); SELECT * FROM user1 WHERE depId IN (SELECT id FROM dep);
1.4. 由比較運(yùn)算符引出子查詢
SELECT id, username, score FROM stu WHERE score >= (SELECT score FROM `level` WHERE id = 1);
1.5. 由EXISTS引發(fā)的子查詢
若EXISTS后的結(jié)果為真,則返回查詢的結(jié)果,否則返回結(jié)果為空。
SELECT * FROM stu WHERE EXISTS (SELECT score FROM `level` WHERE id = 1);
1.6. ANY SOME ALL

取ANY|SOME|ALL后的括號(hào)中的查詢結(jié)果的最小值或最大值。
-- ANY SOME ALL SELECT * FROM stu WHERE score >= ANY(SELECT score FROM `level`); SELECT * FROM stu WHERE score > SOME(SELECT score FROM `level`); SELECT * FROM stu WHERE score > ALL(SELECT score FROM `level`);
1.7. CREATE …SELECT
-- 創(chuàng)建一個(gè)user3表,將表stu中的id, username的信息寫入user3中 CREATE TABLE user3( id INT UNSIGNED AUTO_INCREMENT KEY, username VARCHAR(20) ) SELECT id, username FROM stu;
1.8. INSERT…SELECT
-- 將user1表中的username信息插入到user3中 INSERT user3(username) SELECT username FROM user1;
1.9. CREATE TABLE 表名1 LIKE 表名2;
創(chuàng)建和表2結(jié)構(gòu)相同的表1。
2.聯(lián)合查詢
2.1 UNION
去掉兩個(gè)表中的重復(fù)值。
SELECT 字段名稱,… FROM 表名1 UNION SELECT 字段名稱,… FROM 表名2;
2.2 UNION ALL
只是將兩個(gè)表進(jìn)行簡(jiǎn)單的合并,不會(huì)去掉重復(fù)值。
SELECT 字段名稱,… FROM 表名1 UNION ALL SELECT 字段名稱,… FROM 表名2;
3. 自身連接查詢
3.1. 無限級(jí)分類的實(shí)現(xiàn)形式
創(chuàng)建表cate:
-- 創(chuàng)建表cate
CREATE TABLE cate(
id SMALLINT UNSIGNED AUTO_INCREMENT KEY COMMENT '編號(hào)',
cateName VARCHAR(100) NOT NULL UNIQUE COMMENT '分類名稱',
pId SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '父id'
);
-- 插入頂級(jí)分類
INSERT cate(cateName, pId) VALUES('服裝', 0),
('數(shù)碼', 0),
('玩具', 0),
-- 插入服裝的子分類
('男裝', 1),
('女裝', 1),
('內(nèi)衣', 1),
-- 插入數(shù)碼的子分類
('電視', 2),
('冰箱', 2),
('洗衣機(jī)', 2),
-- 插入玩具的子分類
('愛馬仕', 3),
('LV', 3),
('GUCCI', 3),
-- 插入男裝的子分類
('夾克', 4),
('襯衫', 4),
('褲子', 4),
-- 插入電視的子分類
('液晶電視', 7),
('等離子電視', 7),
('背投電視', 7);
自身連接:
-- 查詢所有的分類信息,并且得到其父分類 SELECT s.id, s.cateName AS sCateName, p.cateName AS pCateName FROM cate AS s LEFT JOIN cate AS p ON s.pId = p.id;

到此這篇關(guān)于Java mysql特殊形式的查詢的文章就介紹到這了,更多相關(guān)Java mysql查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java對(duì)MySQL數(shù)據(jù)庫進(jìn)行連接、查詢和修改操作方法
- Java mysql數(shù)據(jù)庫并進(jìn)行內(nèi)容查詢實(shí)例代碼
- java實(shí)現(xiàn)連接mysql數(shù)據(jù)庫單元測(cè)試查詢數(shù)據(jù)的實(shí)例代碼
- Java連接mysql數(shù)據(jù)庫并進(jìn)行內(nèi)容查詢的方法
- 實(shí)例講解Java的MyBatis框架對(duì)MySQL中數(shù)據(jù)的關(guān)聯(lián)查詢
- java操作mysql入門代碼實(shí)例(含插入、更新和查詢)
相關(guān)文章
Springboot源碼 AbstractAdvisorAutoProxyCreator解析
這篇文章主要介紹了Springboot源碼 AbstractAdvisorAutoProxyCreator解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
java實(shí)現(xiàn)對(duì)excel文件的處理合并單元格的操作
這篇文章主要介紹了java實(shí)現(xiàn)對(duì)excel文件的處理合并單元格的操作,開頭給大家介紹了依賴引入代碼,表格操作的核心代碼,代碼超級(jí)簡(jiǎn)單,需要的朋友可以參考下2021-07-07
Java中本地緩存的4種實(shí)現(xiàn)方式總結(jié)
這篇文章主要介紹了Java中本地緩存的4種實(shí)現(xiàn)方式,分別是基礎(chǔ)緩存實(shí)現(xiàn)、GuavaLoadingCache、SpringBoot整合Caffeine和JetCache,通過實(shí)例代碼,詳細(xì)講解了每種緩存技術(shù)的特點(diǎn)和使用方法,需要的朋友可以參考下2025-04-04
Java Web十條開發(fā)實(shí)用小知識(shí)
這篇文章主要介紹了Java Web十條開發(fā)實(shí)用小知識(shí)的相關(guān)資料,需要的朋友可以參考下2016-05-05
SpringBoot中實(shí)現(xiàn)訂單30分鐘自動(dòng)取消的三種方案分享
在電商和其他涉及到在線支付的應(yīng)用中,通常需要實(shí)現(xiàn)一個(gè)功能:如果用戶在生成訂單后的一定時(shí)間內(nèi)未完成支付,系統(tǒng)將自動(dòng)取消該訂單,本文將詳細(xì)介紹基于Spring Boot框架實(shí)現(xiàn)訂單30分鐘內(nèi)未支付自動(dòng)取消的幾種方案,并提供實(shí)例代碼,需要的朋友可以參考下2023-10-10

