溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java?mysql特殊形式的查詢語句是什么

發(fā)布時間:2022-02-19 14:29:07 來源:億速云 閱讀:166 作者:小新 欄目:開發(fā)技術

這篇文章給大家分享的是有關Java mysql特殊形式的查詢語句是什么的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)建新表:

-- 創(chuàng)建學員表
CREATE TABLE IF NOT EXISTS stu(
id TINYINT UNSIGNED AUTO_INCREMENT KEY COMMENT '編號',
username VARCHAR(20) NOT NULL UNIQUE COMMENT '學員名稱',
score TINYINT UNSIGNED NOT NULL COMMENT '學員考試分數'
)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)建分數級別表
CREATE TABLE IF NOT EXISTS `level`(
id TINYINT UNSIGNED AUTO_INCREMENT KEY COMMENT '編號',
score TINYINT UNSIGNED COMMENT '分數'
)ENGINE=INNODB;

INSERT `level`(score) VALUES(90), (80), (70);

1. 子查詢

1.1. SELECT 字段名稱 FROM 表名 WHERE 字段名稱 = (SELECT 字段名稱 FROM 表名);

1.2. 內層語句查詢的結果可以作為外層語句查詢的條件

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. 由比較運算符引出子查詢

SELECT id, username, score FROM stu
WHERE score >= (SELECT score FROM `level` WHERE id = 1);

1.5. 由EXISTS引發(fā)的子查詢

若EXISTS后的結果為真,則返回查詢的結果,否則返回結果為空。

SELECT * FROM stu WHERE EXISTS (SELECT score FROM `level` WHERE id = 1);

1.6. ANY SOME ALL

Java?mysql特殊形式的查詢語句是什么

取ANY|SOME|ALL后的括號中的查詢結果的最小值或最大值。

-- 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)建一個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結構相同的表1。

2.聯合查詢

2.1 UNION

去掉兩個表中的重復值。

SELECT 字段名稱,… FROM 表名1
UNION
SELECT 字段名稱,… FROM 表名2;

2.2 UNION ALL

只是將兩個表進行簡單的合并,不會去掉重復值。

SELECT 字段名稱,… FROM 表名1
UNION ALL 
SELECT 字段名稱,… FROM 表名2;

3. 自身連接查詢

3.1. 無限級分類的實現形式

創(chuàng)建表cate:

-- 創(chuàng)建表cate
CREATE TABLE cate(
id SMALLINT UNSIGNED AUTO_INCREMENT KEY COMMENT '編號',
cateName VARCHAR(100) NOT NULL UNIQUE COMMENT '分類名稱',
pId SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '父id'
);

-- 插入頂級分類
INSERT cate(cateName, pId) VALUES('服裝', 0),
('數碼', 0),
('玩具', 0),
-- 插入服裝的子分類
('男裝', 1),
('女裝', 1),
('內衣', 1),  
-- 插入數碼的子分類
('電視', 2),
('冰箱', 2),
('洗衣機', 2),
-- 插入玩具的子分類
('愛馬仕', 3),
('LV', 3),
('GUCCI', 3),
-- 插入男裝的子分類
('夾克', 4),
('襯衫', 4),
('褲子', 4),
-- 插入電視的子分類
('液晶電視', 7),
('等離子電視', 7),
('背投電視', 7);

Java?mysql特殊形式的查詢語句是什么

自身連接:

-- 查詢所有的分類信息,并且得到其父分類
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;

Java?mysql特殊形式的查詢語句是什么

感謝各位的閱讀!關于“Java mysql特殊形式的查詢語句是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI