牛客网-SQL专项训练18

①在下列sql语句错误的是?B

 解析:

在sql中若要取得NULL,则必须通过IS NULL或者IS NOT NULL进行获取,无法直接使用等号。

  • 一个等号(=)表示把1赋值给变量啊
  • ==:称为等值符,当等号两边的类型相同时,直接比较值是否相等,若不相同,则先转化为类型相同的值,再进行比较;
  • ===:称为(恒等于)等同符,当两边值的类型相同时,直接比较值,若类型不相同,直接返回false;

②为职员表添加列,列名为年末奖金,允许为空值,数据类型为货币数据类型。下列SQL语句正确的是(B)

 解析:

列的定义中必须包括数据类型,故A错;

题中中说了允许为空值,故C错;

sql中货币数据类型:

money:货币型

money 数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一

smallmoney:货币型

smallmoney 数据类型用来表示钱和货币值。这种数据类型能存储从-214748.3648 到214748.3647 之间的数据,精确到货币单位的万分之一
③Mysql中表student_info(id,name,birth,sex),字段类型都是varchar,插入:1016 , 王五 , 2003-03-01 , 男;

SQL错误的是(C)?

 解析:

指定插入哪些字段,字段名顺序与字段值顺序一致即可,可以用反引号(``)也可以不用反引号,但是不能用单引号('') ,加 '' 时会执行报错。故C错误。

④Mysql(版本8.0.25)中表student_table(id,name,birth,sex),插入如下记录:

('1004' , '张三' , '2000-08-06' , '男');
('1005' , NULL , '2001-12-01' , '女');
('1006' , '张三' , '2000-08-06' , '女');
('1007' , ‘王五’ , '2001-12-01' , '男');
('1008' , '李四' , NULL, '女');
('1009' , '李四' , NULL, '男');
('1010' , '李四' , '2001-12-01', '女');
执行
select t1.*,t2.*
from (
select * from student_table where sex = '男' ) t1 
full  join 
(select * from student_table where sex = '女') t2 
on t1.birth = t2.birth and t1.name = t2.name ; 
的结果行数是:执行错误
解析:
现在我只要一看到Mysql(版本8.0.25)加上使用full join我就会知道报错了,哈哈哈,遇到太多这种题了,条件反射了。
oracle里面有full join,但是在mysql中没有full join,可以使用union来达到目的。
⑤在MySql中进行数据查询时,如果要对查询结果的列名重新命名,将sno列重新命名为学号,则下列语句正确的是( AC)

 解析:

as可以用做重命名,也可以省略as,空格隔开新名称即可。(这个最不该错!!!)

posted on 2022-09-20 20:53  我不想一直当菜鸟  阅读(154)  评论(0编辑  收藏  举报