牛客网-SQL专项训练10


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

解析:

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

②下列说法错误的是?C

牛客网-SQL专项训练10 

 解析:

在使用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)?
牛客网-SQL专项训练10

 解析:

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
牛客网-SQL专项训练10

 解析:

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

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

牛客网-SQL专项训练10

牛客网-SQL专项训练10

解析:

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

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

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/289234.html

(0)
上一篇 2022年9月13日
下一篇 2022年9月13日

相关推荐

发表回复

登录后才能评论