再续数据库链表

数据库相关查询
CREATE
TABLE t_grade( id INT PRIMARY KEY AUTO_INCREMENT, gname VARCHAR(20), gsubject VARCHAR(20), grade INT ); INSERT INTO t_grade(gname,gsubject,grade) VALUES('张三','数学',98),('张三','语文',85),('张三','英语',85), ('李四','数学',85),('李四','语文',90),('李四','英语',65), ('王五','数学',90),('王五','语文',53),('王五','英语',75), ('赵六','数学',56),('赵六','语文',65),('赵六','英语',80); SELECT*FROM t_grade; -- 查询数学比李四考的好的学生 SELECT*FROM t_grade WHERE gsubject='数学' AND grade> (SELECT grade FROM t_grade WHERE gname='李四' AND gsubject='数学'); -- 查询语文成绩在班上平均语文成绩以下的学生 SELECT*FROM t_grade WHERE gsubject='语文' AND grade< (SELECT AVG(grade)FROM t_grade WHERE gsubject='语文'); -- 查询每门科目的最高分的学生 SELECT*FROM t_grade g1 WHERE grade IN (SELECT MAX(grade) FROM t_grade g2 WHERE g1.gsubject=g2.gsubject GROUP BY gsubject);

数据库

CREATE TABLE t_people(
id INT PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(20),
sex ENUM('',''),
birthday DATE
);
INSERT INTO t_people(pname,sex,birthday)
VALUES('张三','','1980-03-04'),('刘欢','','1985-03-26'),
('李四','','1985-09-20'),('张无忌','','1993-02-27'),
('王五','','1993-04-18'),('李世民','','1991-09-04'),
('赵六','','1973-06-30'),('李元霸','','1996-03-14');
SELECT*FROM t_people;

CREATE TABLE t_bike(
id INT PRIMARY KEY AUTO_INCREMENT,
bikeType VARCHAR(20),
price INT,
peopleId INT
);

ALTER TABLE t_bike ADD CONSTRAINT fk_2 FOREIGN KEY(peopleId)
REFERENCES t_people(id);

INSERT INTO t_bike(bikeType, price,peopleId)
VALUES('永久',600,1),('凤凰',450,1),
('大运',1200,2),('捷安特',2100,2),('摩拜',500,2),
('黄蜂',1000,3),('马刺',700,3),
('公牛',650,4),('爵士',700,4),('火箭',500,4),('永久',1200,4),
('奇才',600,5);
SELECT*FROM t_people;
SELECT*FROM t_bike;

DROP TABLE t_people;
DROP TABLE t_bike;

-- 列出所有的自行车,并显示该自行车主人名称 join链接
SELECT b.*,p.pname FROM t_bike b,t_people p WHERE b.peopleId=p.id;--








SELECT b.*,p.pname FROM t_bike b JOIN t_people p ON b.peopleId=p.id;


SELECT b.*,p.pname FROM t_bike b,t_people p WHERE b.peopleId=p.id;


-- 查询张无忌拥有的自行车信息
SELECT b.* FROM t_bike b  WHERE b.peopleId=
(SELECT    p.id FROM t_people  p WHERE p.pname='张无忌')--






SELECT b.* FROM t_bike b,t_people p WHERE b.peopleId=p.id AND p.pname='张无忌';    
SELECT b.* FROM t_bike b JOIN t_people p ON b.peopleId=p.id WHERE p.pname='张无忌';


-- 删除王五
UPDATE t_bike  b SET b.peopleId=NULL WHERE b.peopleId=
(SELECT p.id FROM t_people p WHERE p.pname='王五' );

DELETE FROM t_people   WHERE pname='王五';--






UPDATE t_bike b SET  b.peopleId=NULL WHERE peopleId=
(SELECT id FROM t_people WHERE pname='王五');

DELETE  FROM t_people WHERE pname='王五';

 


-- 查询没有主人的自行车
SELECT b.* FROM t_bike b WHERE b.peopleId IS NULL;--







SELECT*FROM t_bike b WHERE b.peopleId IS NULL;

-- 统计每个人拥有自行车、

SELECT p.*,COUNT(b.peopleId) bikeNumber FROM  t_people p LEFT JOIN t_bike b ON b.peopleId=p.id
GROUP BY p.id; --




SELECT p.*,COUNT(b.id) bikenum FROM t_people p LEFT JOIN t_bike b ON p.id=b.peopleId
GROUP BY p.id;


SELECT p.*,COUNT(b.id) FROM t_people p JOIN t_bike b  ON p.id=b.peopleId GROUP BY p.id;

-- 查询所有的自行车,以及该车该车主人的姓名
-- 如果p.pname为空,返回“没有主人”
SELECT b.*,IFNULL(p.pname,'没主人') bikeInfo  FROM t_bike b LEFT JOIN t_people p ON p.id=b.peopleId; --







SELECT b.*,IFNULL(p.pname,'没有主人') bikeInfo FROM t_bike b 
LEFT JOIN t_people p ON b.peopleId=p.id;

-- 统计拥有自行车的用户,有几辆自行车 ,并统计总表格
SELECT p.*,COUNT(b.peopleId) bikeNum,SUM(b.price)  FROM t_people p JOIN t_bike b ON b.peopleId=p.id GROUP BY p.id;--




  
 SELECT p.pname,COUNT(b.id) bikeNum, SUM(b.price) bikeprice
 FROM t_bike b ,t_people p WHERE b.peopleId=p.id GROUP BY p.id;

 

CREATE TABLE t_people(id INT PRIMARY KEY AUTO_INCREMENT,pname VARCHAR(20),sex ENUM('男','女'),birthday DATE);INSERT INTO t_people(pname,sex,birthday)VALUES('张三','男','1980-03-04'),('刘欢','男','1985-03-26'),('李四','女','1985-09-20'),('张无忌','女','1993-02-27'),('王五','男','1993-04-18'),('李世民','男','1991-09-04'),('赵六','女','1973-06-30'),('李元霸','男','1996-03-14');SELECT*FROM t_people;
CREATE TABLE t_bike(id INT PRIMARY KEY AUTO_INCREMENT,bikeType VARCHAR(20),price INT,peopleId INT);
ALTER TABLE t_bike ADD CONSTRAINT fk_2 FOREIGN KEY(peopleId)REFERENCES t_people(id);
INSERT INTO t_bike(bikeType, price,peopleId)VALUES('永久',600,1),('凤凰',450,1),('大运',1200,2),('捷安特',2100,2),('摩拜',500,2),('黄蜂',1000,3),('马刺',700,3),('公牛',650,4),('爵士',700,4),('火箭',500,4),('永久',1200,4),('奇才',600,5);SELECT*FROM t_people;SELECT*FROM t_bike;
DROP TABLE t_people;DROP TABLE t_bike;
-- 列出所有的自行车,并显示该自行车主人名称 join链接SELECT b.*,p.pname FROM t_bike b,t_people p WHERE b.peopleId=p.id;-- 我







SELECT b.*,p.pname FROM t_bike b JOIN t_people p ON b.peopleId=p.id;

SELECT b.*,p.pname FROM t_bike b,t_people p WHERE b.peopleId=p.id;

-- 查询张无忌拥有的自行车信息SELECT b.* FROM t_bike b  WHERE b.peopleId=(SELECTp.id FROM t_people  p WHERE p.pname='张无忌')-- 我





SELECT b.* FROM t_bike b,t_people p WHERE b.peopleId=p.id AND p.pname='张无忌';SELECT b.* FROM t_bike b JOIN t_people p ON b.peopleId=p.id WHERE p.pname='张无忌';

-- 删除王五UPDATE t_bike  b SET b.peopleId=NULL WHERE b.peopleId=(SELECT p.id FROM t_people p WHERE p.pname='王五' );
DELETE FROM t_people   WHERE pname='王五';--  我 





UPDATE t_bike b SET  b.peopleId=NULL WHERE peopleId=(SELECT id FROM t_people WHERE pname='王五');
DELETE  FROM t_people WHERE pname='王五';
 

-- 查询没有主人的自行车SELECT b.* FROM t_bike b WHERE b.peopleId IS NULL;-- 我






SELECT*FROM t_bike b WHERE b.peopleId IS NULL;
-- 统计每个人拥有自行车、
SELECT p.*,COUNT(b.peopleId) bikeNumber FROM  t_people p LEFT JOIN t_bike b ON b.peopleId=p.idGROUP BY p.id; -- 我



SELECT p.*,COUNT(b.id) bikenum FROM t_people p LEFT JOIN t_bike b ON p.id=b.peopleIdGROUP BY p.id;

SELECT p.*,COUNT(b.id) FROM t_people p JOIN t_bike b  ON p.id=b.peopleId GROUP BY p.id;
-- 查询所有的自行车,以及该车该车主人的姓名-- 如果p.pname为空,返回“没有主人”SELECT b.*,IFNULL(p.pname,'没主人') bikeInfo  FROM t_bike b LEFT JOIN t_people p ON p.id=b.peopleId; -- 我






SELECT b.*,IFNULL(p.pname,'没有主人') bikeInfo FROM t_bike b LEFT JOIN t_people p ON b.peopleId=p.id;
-- 统计拥有自行车的用户,有几辆自行车 ,并统计总表格SELECT p.*,COUNT(b.peopleId) bikeNum,SUM(b.price)  FROM t_people p JOIN t_bike b ON b.peopleId=p.id GROUP BY p.id;-- 我



   SELECT p.pname,COUNT(b.id) bikeNum, SUM(b.price) bikeprice FROM t_bike b ,t_people p WHERE b.peopleId=p.id GROUP BY p.id;

posted @ 2017-05-14 21:54  红烧鱼l  阅读(139)  评论(0编辑  收藏  举报