MySQL数据库例题答案
– 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
上一篇: 从对巫说
下一篇: Socket连接两台电脑进行文件传输