①Mysql中表student_info(id,name,birth,sex),字段类型都是varchar,插入如下记录:('1014' , '张三' , '2002-01-06' , '男'); SQL错误的是(B)?
解析:
普通插入(全字段):INSERT INTO 表名 VALUES (value1, value2, ...)
普通插入(限定字段):INSERT INTO 表名 (column1, column2, ...) VALUES (value1, value2, ...)
多条一次性插入:INSERT INTO 表名 (column1, column2, ...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...
从另一个表导入:INSERT INTO 表名 SELECT * FROM 另一张表名 [WHERE key=value]
主要问题在于B选项:如果`table`不是表名,不能带table关键字,会报错;如果table就是表名,需要用`table`才行。
②Mysql中表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 count(t1.birth) as c1
from (
select * from student_table where sex = '男' ) t1
right join
(select * from student_table where sex = '女') t2
on t1.birth = t2.birth and t1.name = t2.name ;
的结果行数是:1 解析: 题目中【right join ... on t1.birth = t2.birth and t1.name = t2.name ; 】right join是以t2表为主表,(左右表中的birth、name都不为NULL时才会匹配上),无法匹配t1中一个字段为NULL或两个字段都为NULL的记录(所以t1结果不含有‘李四’、‘王五’),查询结果如下图,而这次不仅仅是right join发行数,而是查count(t1.birth),count(字段)是不包含NULL记录,所以结果是1行。
③子查询中,父查询中一般使用IN运算符的是(B)
单列单值嵌套查询:
结果集为一个值,一般使用=、<、>等运算符
多列多值嵌套查询:
结果类似于一张虚拟表,父查询中只能使用EXISTS或NOT EXISTS
集合查询:
通常是利用UNION、EXCEPT、INTERSECT集合运算符实现两个表之间的数据查询。
子查询知识点: where型子查询:指把内部查询的结果作为外层查询的比较条件。子查询:单列单值from型子查询:把内层的查询结果当成临时表,供外层sql再次查询。子查询:多行多列
in子查询:内层查询语句仅返回一个数据列,这个数据列的值将供外层查询语句进行比较 子查询:单列多行
exists子查询:把外层的查询结果,拿到内层,看内层是否成立,简单来说后面的返回true,外层(也就是前面的语句)才会执行,否则不执行。
any子查询:只要满足内层子查询中的任意一个比较条件,就返回一个结果作为外层查询条件。
all子查询:内层子查询返回的结果需同时满足所有内层查询条件。 ④SQL更新(UPDATE语句)单个表格某一行多列数据的方法:
正确的UPDATE更新语法为:
UPDATE table_name SET field1 = new-value1, field2 = new-value2 [WHERE Clause];
注意:更新多列数据的间隔符号是逗号
REPLACE函数虽然可以批量修改数据,REPLACE的语法是:
REPLACE INTO tab_name(field1, field2...) VALUES (value1, value2)...;
⑤某高校采取电子化考试,便于查询学生对应考场号创建视图,已知student表(学号sid,姓名sname,考号s_test_id),room表(考场号rid,座位号rseat,考号s_test_id),下列语句错误的是()
解析:
建立视图的语法:
CREATE VIEW 视图名[(字段1),字段2),(字段3)...] AS select 语句 其中:[(字段1),字段2),(字段3)...] 可省 所有选项都是在多表上建立视图,AD选项在视图中重命名了选取列的列名,但是D选项的列名(rid,rseat,sname,s_test_id)与选取列内容student.sname, student.s_test_id, room.rid, room.rseat不一致,后续对于视图的操作很容易引起歧义,且指定列名和AS颠倒了位置,错误; B选项增加了将视图存入临时表的操作,然后用临时表来执行语句; C选项未重命名,但是并不影响。 标签:...,21,查询,牛客,birth,SQL,table,t1,name From: https://www.cnblogs.com/liu-myu/p/16721989.html