牛客网-SQL专项训练10

2022/9/14 2:17:02

本文主要是介绍牛客网-SQL专项训练10,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

①SQL语句中与Having子句同时使用的语句是:group by

解析:

SQL语法中,having需要与group by联用,起到过滤group by后数据的作用。

②下列说法错误的是?C

 

 解析:

在使用insert语句插入数据时,表达式的数据类型和表格中对应各列的数据类型必须一一对应。

③Mysql中表student_table(id,name,birth,sex),插入如下记录:
('1003' , NULL , '2002-05-20' , '男');
('1004' , '张三' , '2000-09-06' , '男');
('1005' , '李四' , '2001-12-01' , '女');

('1006' , NULL , '2001-12-02' , '女'); 修改name字段为NULL的记录,是男生时设置name='男生姓名',是女生时设置name='女生姓名',如下SQL正确的是(D)?

 解析:

case when的正确语法是: case when ... then ... when ... then ... else ... end,case和end不能缺少!故直接排除B、C选项

而A选项:SQL语句中条件判断if的语法是:if(表达式成立,返回值,否则返回值),[ 修改name字段为NULL的记录 ]是应该把条件where语句写在最后。

SELECT product_name,sale_price FROM PRODUCT AS P WHERE EXISTS (SELECT * FROM SHOPPRODUCT AS SP WHERE SP.shop_id = ‘00C’ AND SP.product_id = P.product_id); 其中PRODUCT表示商品表,SHOPPRODUCT指商店在售商品表,其中shop_id字段表示商店id,product_id表示产品id。 以上这段sql主要是完成了哪个操作?A

 解析:

从商品表中查询,条件是两个表通过id进行关联,shop_id = ‘00C’,并且存在于在售商品表中,最后显示商品的名字和价格。即选出了‘00C’商店目前在售的商品和价格。与A选项最符合。

⑤Mysql中表student_table(id,name,birth,sex),分别查询男生、女生的最大、最小出生日期,如下SQL正确的是(D)?

解析:

BC选项最大的错误是确实group by sex

我在AD中纠结,仔细观察发现A选项分别求男生、女生的最大和最小年龄,男生先求的最小而女生先求的最大,再union all,结果就会以第一个子表的字段顺序为准显示出来,所以女生的max_birth会作为min_birth显示出来,结果与题意不符。故答案为D

 



这篇关于牛客网-SQL专项训练10的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程