mysql task2

作业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;

猜你喜欢

转载自blog.csdn.net/qq_42945295/article/details/89033745