SQL强化 Day04 别名,连接查询,合并查询

1. MySQL别名

1、为表取别名

SELECT * FROM 表名字 [AS] 表别名;

在这里插入图片描述在这里插入图片描述
2、为字段取别名

SELECT 列名 AS 列别名 FROM 表名 AS 表别名;

在这里插入图片描述在这里插入图片描述

2. 连接查询

1、内连接(where / inner join … on …

在这里插入图片描述在这里插入图片描述2、外链接

a) 左外连接(left join … on …)
在这里插入图片描述b) 右外连接(right join … on …)
在这里插入图片描述

3. 合并查询结果

1、union(合并查询结果去除重复)

在这里插入图片描述

2、union all(单纯的合并结果不处理重复数据)

在这里插入图片描述

4. 小项目

1. 组合两张表 (难度:简单)

在这里插入图片描述
SQL:

# create and use database person_info
CREATE DATABASE IF NOT EXISTS person_info DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
USE PERSON_INFO;
# create table
CREATE TABLE Person(
Person INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50)
);
CREATE TABLE Address(
AddressId INT PRIMARY KEY,
PersonId INT,
City VARCHAR(50),
State VARCHAR(50)
);
# INSERT DATA
INSERT INTO Person VALUE(1, "Ricky", "Cai");
INSERT INTO Person VALUE(2, "Gin", "Qin");
INSERT INTO Person VALUE(3, "Vermouth", "Kris");
INSERT INTO Address VALUE(1, 1, "Zhuhai", "China");
INSERT INTO Address VALUE(2, 2, NULL, NULL);
INSERT INTO Address VALUE(3, 3, "Tokyo", "America");
# vefify
SELECT * FROM Person;
SELECT * FROM Address;
# task
SELECT FirstName, LastName, a.City, a.State  
FROM Person AS p
RIGHT JOIN Address AS a 
ON a.PersonId = p.PersonId;

Result:
在这里插入图片描述2. 删除重复的邮箱(难度:简单)
在这里插入图片描述
SQL:

CREATE TABLE Email(
Id INT PRIMARY KEY,
Email varchar(100)
);
INSERT INTO Email VALUE(1, "[email protected]");
INSERT INTO Email VALUE(2, "[email protected]");
INSERT INTO Email VALUE(3, "[email protected]");
# Close the current session safe mode
SET SQL_SAFE_UPDATES = 0;
# Remove the same email
DELETE e1 
FROM Email e1, Email e2
WHERE e1.Email = e2.Email
AND e1.Id > e2.Id;
# Recover safe mode
SET SQL_SAFE_UPDATES = 1;
SELECT * FROM Email;

Result:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/whisky_12/article/details/88072065