作业1
建表及插入数据语句
CREATE TABLE `courses` (
`student` VARCHAR ( 255 ) DEFAULT NULL,
`class` VARCHAR ( 255 ) DEFAULT NULL,
`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
PRIMARY KEY ( `id` )
);
INSERT INTO courses(student,class) VALUES('A', 'Math');
INSERT INTO courses(student,class) VALUES('B', 'English');
INSERT INTO courses(student,class) VALUES('C', 'Math');
INSERT INTO courses(student,class) VALUES('D', 'Biology');
INSERT INTO courses(student,class) VALUES('E', 'Math');
INSERT INTO courses(student,class) VALUES('F', 'Computer');
INSERT INTO courses(student,class) VALUES('G', 'Math');
INSERT INTO courses(student,class) VALUES('H', 'Math');
INSERT INTO courses(student,class) VALUES('I', 'Math');
INSERT INTO courses(student,class) VALUES('A', 'Math');
查询语句,用到了distinct关键字用于多列
SELECT
tmp.class
FROM
( SELECT DISTINCT student, class FROM courses ) AS tmp
GROUP BY
tmp.class
HAVING
count( 1 ) >= 5;
项目四:交换工资(难度:简单)
建表及插入数据语句
CREATE TABLE `salary` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`sex` varchar(255) DEFAULT NULL,
`salary` int(10) DEFAULT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO salary(name,sex,salary) VALUES('A', 'm',2500);
INSERT INTO salary(name,sex,salary) VALUES('B', 'f',1500);
INSERT INTO salary(name,sex,salary) VALUES('C', 'm',5500);
INSERT INTO salary(name,sex,salary) VALUES('D', 'f',500);
UPDATE salary
SET sex = ( CASE WHEN sex = 'm' THEN 'f' WHEN sex = 'f' THEN 'm' ELSE sex END )
WHERE
sex IN ( 'f', 'm' );
项目五:组合两张表 (难度:简单)
SELECT
p.FirstName,
p.LastName,
a.City,
a.State
FROM
Person p
LEFT JOIN Address a ON p.PersonId = a.PersonId;
项目六:删除重复的邮箱(难度:简单)
DELETE e2
FROM
email e1
JOIN email e2 ON e1.Email = e2.Email
WHERE
e2.id > e1.id;