当前位置: 移动技术网 > IT编程>数据库>Mysql > MySQL数据库例题答案

MySQL数据库例题答案

2020年07月18日  | 移动技术网IT编程  | 我要评论

– 1.请填写以上的(1)~(9)处的注释,写明各编号下的一个SQL语句实现的功能;

– 2.在official表中查找工作年限在20(包含)年以上或工作年限字段为空的所有工作人员的信息。

SELECT * FROM offical
WHERE Overtime >= 20 or Overtime is NULL;

– 3.查询所有管理人员的基本信息。

SELECT * FROM offical 
WHERE PNr IN
(SELECT DISTINCT Manager FROM offical );  

– 4.查找专门的联络员的所有信息及他所联络的所有车主的信息。

SELECT `Owner`.*, offical.* FROM  `Owner` ,contact,offical
WHERE offical.PNr = contact.PersNumber and contact.OwnerID = `Owner`.OwnerID;

– 5.在当前的数据库中查找各个城市的汽车保有量。

SELECT b.city,count(`owner`)
FROM car a, `owner` b
WHERE a.`Owner` = b.OwnerID
GROUP BY city;

– 7.查找年龄在25(包含)岁以上且所在城市以’W’开头的车主的信息。

SELECT * FROM `Owner`
WHERE (datediff(now(),birthDay)/365) >= 25 and city like 'w%';

– 8.查找车辆所有者为公司的全部信息。

select * from `Owner`
where birthday is NULL;	

– 9.查找奔驰或宝马或者马力在160匹以上车的信息及车主的信息。

SELECT * FROM car , `Owner`
WHERE  (Brand = 'BMW' OR Brand = 'Mercedes' OR HP > 160) and `Owner`.OwnerID = car.`Owner`;

– 10.2012年有几辆车被偷了?

SELECT count(*) 2012被偷车辆数量 FROM stolen 
WHERE year(reported_at) = '2012';

– 11.假如一车辆注册进入car表之后,如果没有人工干预,25年之后会强制转移至别的表中并从此表中删除。现请用右外连接查询所有被盗车辆的所有信息及被盗时间。

SELECT * FROM car a
RIGHT OUTER JOIN stolen b ON  a.PlateNumber = b.PlateNumber;

– 12.查找拥有至少2车辆车的车主信息。提示:先在car 表里按车主进行分组查询;

SELECT * FROM  `Owner`
WHERE `OwnerID`  IN 
(SELECT `Owner` FROM car 
GROUP BY `Owner`
HAVING  count(*) >= 2);

– 13.我要借一辆红色的车,我应该去联系谁(按照你认为合理的方式解决)?

SELECT  a.`Name` 车主姓名, a.city 所在城市 , b.color 车辆颜色
FROM `Owner` a , car b
WHERE   a.OwnerID = b.`Owner`  AND b.color = 'red';

– 14.如果P04号工作人员有联络客户,找出联络客户的ID,姓名与所在城市。

SELECT `Owner`.OwnerID , `Owner`.`Name` , `Owner`.city
FROM `Owner`, contact 
WHERE  `Owner`.OwnerID = contact.OwnerID  AND contact.PersNumber = 'P04';

– 15.查询工作人员的平均工作年限。

SELECT avg(Overtime) 平均工作年限 FROM  offical;

– 16.删除车牌尾号为’77’的车辆信息。

DELETE FROM car
WHERE PlateNumber LIKE '%77';

– 17.将owner表的name字段的数据类型修改为varchar(20)。

DESC `owner`;
ALTER TABLE `Owner`  MODIFY  `Name`  VARCHAR(20);

– 18.创建一个存储过程,能根据车主的姓名,查询出该车主的所有的车辆信息。

delimiter $$
CREATE PROCEDURE car_information(in `Name1` varchar(20))
begin
SELECT * FROM car 
WHERE `Owner` IN 
(SELECT OwnerID FROM `owner`
WHERE `Name` = `Name`);
end $$
delimiter ;

CALL car_information('Ms U');

– 19.在offical表中查询’Mr A’上级的上级的工号。

SELECT Manager FROM offical
WHERE PNr in
(SELECT Manager FROM offical 
WHERE `Name` = 'Mr A');

– 20.将offical 表中工号为P04的员工的工作年限修改为6。

UPDATE offical SET Overtime = 6
WHERE PNr =  'P04';

– 21.将carid 为 f02的车辆过户给 Mr Z ,请在数据库表中实施。

UPDATE car SET `Owner` = 
 (SELECT OwnerID FROM `owner` 
WHERE `Name` = 'Mr Z')
WHERE CarID = 'f02';

– 22.将carid 为 F20的车喷涂为红色,请在数据库表中实施。

UPDATE car SET color = 'red'
WHERE CarID = 'F20';

– 23.创建一个视图audi_owner,该视图中要包含所有的车主信息及车辆信息,且车辆中只含有audi品牌。

CREATE VIEW audi_owner
AS (SELECT *  FROM `owner` a ,car b
WHERE b.Brand = 'audi' and a.OwnerID = b.`Owner`) ;

SELECT * FROM audi_owner ;

– 24.在car表上创建一个索引index_find,索引中含有carid与车牌号两个字段。

CREATE INDEX index_find ON car(CarID,PlateNumber);
SHOW INDEX FROM car;

本文地址:https://blog.csdn.net/conjurer_yft/article/details/107392912

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网