参考答案和解析
正确答案:
 
更多“用SQL写语句:在下列三张表中选出 CLASSID 为“1”的人的NAME和AGE。表1 表2 表3No Name Age No ID No102 Ja 23 102 1 102103 Ba 23 104 1 103104 Na 24 103 2 104”相关问题
  • 第1题:

    根据SQL标准,要修改表student中所有学生的年龄age,使之在原值基础上减一,下面哪个语句适用?()

    A update student set age = 1

    B update student set age = age - 1

    C update age = age -1 from student

    D update from student where age = age -1


    参考答案B

  • 第2题:

    oracle关联查询题目1

    数据库中有3 个表 teacher 表,student 表,tea_stu 关系表。

    teacher 表 teaID name age

    student 表 stuID name age

    teacher_student 表 teaID stuID

    要求用一条sql 查询出这样的结果

    1.显示的字段要有老师name, age 每个老师所带的学生人数

    2 只列出老师age 为40 以下学生age 为12 以上的记录

    预备知识:

    1.sql 语句是对每一条记录依次处理,条件为真则执行动作(select,insert,delete,update)

    2.只要是迪卡尔积,就会产生“垃圾”信息,所以,只要迪卡尔积了,我们首先就要想到清除“垃圾”信息

    实验准备:

    drop table if exists tea_stu;

    drop table if exists teacher;

    drop table if exists student;

    create table teacher(teaID int primary key,name varchar(50),age int);

    create table student(stuID int primary key,name varchar(50),age int);

    create table tea_stu(teaID int references teacher(teaID),stuID int references student(stuID));

    insert into teacher values(1,'zxx',45), (2,'lhm',25) , (3,'wzg',26) , (4,'tg',27);

    insert into student values(1,'wy',11), (2,'dh',25) , (3,'ysq',26) , (4,'mxc',27);

    insert into tea_stu values(1,1), (1,2), (1,3);

    insert into tea_stu values(2,2), (2,3), (2,4);

    insert into tea_stu values(3,3), (3,4), (3,1);

    insert into tea_stu values(4,4), (4,1), (4,2) , (4,3);

    结果:2_3,3_2,4_3


    正确答案:

     

    解题思路:(真实面试答题时,也要写出每个分析步骤,如果纸张不够,就找别人要)

    1 要会统计分组信息:

    select teaid,count(*) from tea_stu group by teaid;

    2.要会筛选大于40 的老师

    先讲给1 号学生带课的所有老师的名字,要知道1 号学生的老师,要从哪个表获得?从tea_stu 里才可以,从

    这个表里获得的是老师的什么?是老师的teaID,如果要得到老师的名称,则必须拿着teaID 去teacher 里找。所以,

    这两个表要进行关联,关联就引出迪卡尔既的问题。假设我们好获得teaID 为1 的老师的名称,我们要关联的是哪条

    记录?是1 那一条,但是,迪卡尔既的结果有几条啊?4 条,显然,我接着要做的就是把其他垃圾的3 条去掉。

    select * from tea_stu,teacher where tea_stu.teaID=teacher.teaID;

    再接着去掉大于40 的老师:

    select * from tea_stu,teacher where tea_stu.teaID=teacher.teaID and teacher.age<=40;

    3.再对上面的结果去掉小于12 的学生

    select * from

    (select tea_stu.* from tea_stu,teacher where tea_stu.teaID=

    teacher.teaID and teacher.age<40) as t,

    student

    where t.stuid=student.stuid and student.age>12;

    4.再对上面的结果进行统计,显示的是老师的id 和组信息

    select t.teaID,count(*) from

    (select tea_stu.* from tea_stu,teacher where tea_stu.teaID=

    teacher.teaID and teacher.age<40) as t,

    student

    where t.stuid=student.stuid and student.age>12

    group by t.teaID;

    5.然后对上面的东西进行改写,改写成显示老师的名字

    select teacher.name,t2.c from

    (select t.teaID,count(*) c from

    (select tea_stu.* from tea_stu,teacher where tea_stu.teaID=

    teacher.teaID and teacher.age<40) as t,

    student

    where t.stuid=student.stuid and student.age>12

    group by t.teaID) as t2,

    teacher

    where teacher.teaID=t2.teaID;

    第二种写法:

    select teacher.teaID, teacher.name, t1.total from teacher,

    (select teaID,count(tea_stu.stuID) total from tea_stu, student

    where tea_stu.stuID = student.stuID and student.age>12

    group by teaID ) as t1

    where teacher.teaID = t1.teaID and teacher.age<40 ;

    求出发帖最多的人:

    select authorid,count(*) total from articles

    group by authorid

    having total=

    (select max(total2) from (select count(*) total2 from articles group by authorid) as t);

    select t.authorid,max(t.total) from

    (select authorid,count(*) total from articles )as t

    这条语句不行,因为max 只有一列,不能与其他列混淆。

    select authorid,count(*) total from articles

    group by authorid having total=max(total)也不行。

  • 第3题:

    在Visual FoxPro中,使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是A)REPLACEAGE WITH AGE+1B)UPDATE STUDENT AGE WITH AGE+1C)UPDATE SET AGE WITH AGE+1D)UPDATE STUDENT SET AGE=AGE+1


    正确答案:D
    本题考查SQL语句UPDATA语句的功能和使用。选项A的错误在于,它是普通的修改命令,在缺少短语ALL情况下,只能修改当前的记录;选项B的错误在于不应该使用WITH短语;选项C则没有指明对STUDENT表进行操作,并且不应该使用短语WITH;选项D是实玺题目要求的正确书写方法,故选项D为正确答案。

  • 第4题:

    描述

    表1 student 学生信息表

    ID int 学生编号

    Name varchar 学生姓名

    Sex bit 性别(男0女1)

    Class int 班级编号

    表2 schedule 课程信息表

    ID int 课程编号

    Name varchar 课程名称

    表3 Grade 成绩信息表

    ID int 自动编号

    UID int 学生编号

    SID int 课程编号

    Num int 考试成绩

    (a)求各班的总人数(1分)

    (b)求1班女生和男生的平均成绩(2分)

    (c)各班"数据结构"(课程名称)不及格的人数(2分)


    正确答案:
     

  • 第5题:

    MySQL中用DROP语句可删除数据库和数据表,以下哪句是正确的语法?()

    A、DROPTABLEtable_name1

    B、DROPTABLEtable_name1,table_name2

    C、DROPTABLEIFEXISTStable_name1

    D、DROPDATABASEDBname1


    答案:ABCD

  • 第6题:

    若用如下的SQL语句创建一个student表: CREATE TABLE student( N0 C(4)NOT NULL, NAME C(8)NOT NULL, SEX C(2), AGE N(2) ) 可以插入到student表中的是

    A.('1031','曾华',男,23)

    B.('1031','曾华',NULL,NULL)

    C.(NULL,'曾华','男','23')

    D.('1031',NULL,'男',23)


    正确答案:B
    解析:INSERT语句的功能是向表中插入一条记录,但是记录的结构必须符合表的结构。由于表的结构是:NO C(4)NOT NULL,NAME C(8)NOT NULL,SEX C(2),AGE N(2),因此选项A.'1031','曾华',男,23)中的SEX字段不符合要求:选项C.(NULL,'曾华','男', '23')中的AGE字段不符合要求;选项D.('1031', NULL,'男',23)中的NAME字段为NULL,不符合要求,因此只有选项B能够被插入。

  • 第7题:

    若用如下的SQL语句创建一个student表: CREATE TABLE student( NO C(4) NOT NULL,NAME C(8) NOT NULL, SEX C(2) ,AGE N(2) ) 可以插入到student表中的是

    A. ('1031','李林',男,23)

    B. ('1031','李林',NULL)

    C. (NULL,'李林','男','23')

    D. ('1031',NULL,'男',23)


    正确答案:B
    解析:根据本SQL语句的定义,NO和NAME字段不能为NULL值,因此C),D)不能插入,字符型数据需加单引号,因此A)也不能插入。

  • 第8题:

    创建表并给出约束。  用SQL语句创建如下三张表:学生表(Student)、课程表(Course)和学生修课表(SC),这三张表的结构和约束如表4-1到表4-3所示。
    创建满足约束条件的上述三张表的SQL语句如下:

  • 第9题:

    数据库a1.mdb中的数据表s1,含ID、name、pwd三个字段,能够正确输出当前记录的用户名(name)的语句是()。

    • A、Response.Write(rs("name"))
    • B、Response.Write(rs.Field("name"))
    • C、Response.Write(rs.Fields(2))
    • D、Response.Write(rs(1))

    正确答案:A,D

  • 第10题:

    数据库中有一张表名称为Student,有列Name,Age,IDCard,Sex。要求写SQL语句查询出表中年龄介于20和30岁之间的数据,下列哪个SQL语句是正确的?()

    • A、Select* From Student Where Age>=20 ANDAge>=30
    • B、Select* From Student Where Age>=20 ANDAge<=30
    • C、Select* From Student Where Age BET WENN 20AND30
    • D、Select* From Student Where Age>=20&&Age>=30"

    正确答案:A,C

  • 第11题:

    单选题
    在Visual FoxPro中,使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是(  )。
    A

    REPLACE AGE WITH AGE+1

    B

    UPDATE STUDENT AGE WITH AGE+1

    C

    UPDATE SET AGE WITH AGE+1

    D

    UPDATE STUDENT SET AGE=AGE+I


    正确答案: D
    解析:
    D项,使用UPDATE命令更新表中的数据,格式是UPDATE TableName SET Column_Namel = eExpressionl [,Column_Name2=eExpression2…] WHERE Coildition。A项,普通的修改命令,在缺少短语ALL情况下,只能修改当前的记录;B项,不应该使用WITH短语;C项,没有指明对STUDENT表进行操作,并且不应该使用短语WITH。

  • 第12题:

    多选题
    数据库中有一张表名称为Student,有列Name,Age,IDCard,Sex。要求写SQL语句查询出表中所有的数据,下列哪个SQL语句是正确的()
    A

    Select* From Student

    B

    Select Name From Student

    C

    Select Name,Age,IDCard From Student

    D

    Select Name,Age,IDCard,Sex From Student


    正确答案: C,A
    解析: 暂无解析

  • 第13题:

    在Visual FoxPro中,使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是

    A.REPLACE AGE WITH AGE+1

    B.UPDATE STUDENT AGE WITH AGE+1

    C.UPDATE SET AGE WITH AGE+I

    D.UPDATE STUDENT SET AGE=AGE+1


    正确答案:D
    解析:本题考查SQL语句中UPDATA语句的功能和使用。选项A的错误在于,它是普通的修改命令,在缺少短语ALL情况下,只能修改当前的记录;选项B的错误在于不应该使用 WITH短语;选项C则没有指明对STUDENT表进行操作,并且不应该使用短语WITH;选项D是实现题目要求的正确书写方法,故选项D为正确答案。

  • 第14题:

    在Visual FoxPro中,使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该的使用命令是( )。

    A. REPLACE AGE WITH AGE+1

    B. MODIFY STUDENT SET AGE=AGE+1

    C. ALTER STUDENT SET AGE WITH AGE+1

    D. UPDATE STUDENT SET AGE=AGE+1


    正确答案:D
    替换可以使用REPLACE和UPDATE命令,其中REPLACE的格式为:
    REPLACE FieldNamel WITH eExpressionl[ADDITIVE] [,FieldName2 WITH eExpression2[ADDITIVE]]...
    [Scope][FOR IExpressionl][WHILE lExpression2]
    [IN nWorkArea I cTableAlias]
    [NOOPTIMIZE]
    UPDATE的格式为:
    UPDATE[DatabaseName1!]TableNamel
    SET Column_Namel=eExpressionl
    [,Column_Name2=eExpression2…]
    WHEREFilterConditionl[ AND|OR FiherCondition2…]]
    但REPLACE不是SQL语句,故本题A不是正确答案,正确答案是D。

  • 第15题:

    若用如下的SQL语句建立一个Worker表: CREATE TABLE worker(NO C(4)NOT NULL,NAME C(8)NOT NULL,SEX C(2),AGE N(2)) 可以插入到worker表中的是______。

    A.('20031006',NULL,'男',23)

    B.(NULL,NULL,'女',23)

    C.(NULL,'李林','男',23)

    D.('20031006','李林','男',23)


    正确答案:D
    解析:NO字段和NAME字段不允许为空,因此在进行插入操作时,该属性值不能为空,A、B、C选项中都有空值,故不能插入。SEX字段为字符型,而A选项中的该属性值为数值型,也不正确。

  • 第16题:

    在一个 mysql 4.0+的数据库中有两个表,学生表和成绩表,分别如下所示:

    SN | Name SN | Score

    ------------- -------------

    1 | Jerry 1 | 48

    ------------- -------------

    2 | Lily 2 | 50

    ------------- -------------

    3 | Roy

    -------------

    其中 SN 是联系两个表的外键。用带有 LEFT JOIN 的SQL 语句删除哪些没有对应成绩的学生。


    正确答案:
     

  • 第17题:

    Person p = new Person(“张三”,23);这条语句会调用下列哪个构造方法给属性进行初始化()

    A.public Person(){}

    B.public Person(String name,int age) { this.name = name; this.age = age; }

    C.public Person(int age,String name) { this.age = age; this.name = name; }

    D.public Person(String name) { this.name = name; }


    答案:B
    解析:创建对象时会找到匹配的构造方法给属性进行初始化,由于Person p = new Person(“张三”,23);这条语句中有两个参数,而且第1个参数是String类型的,第2个参数是int类型的,因此会调用B选项中的构造方法。

  • 第18题:

    Inthisscenario,assumethatyouarchivelogs101to104totwoarchivingdestinations,/log1and/log2.Thecontrolfilecontainsarchivedlogrecordsasfollows:

    SequenceFilename

    101/log1/log_1_101.arc

    101/log2/log_1_101.arc

    102/log1/log_1_102.arc

    102/log2/log_1_102.arc

    103/log1/log_1_103.arc

    103/log2/log_1_103.arc

    104/log1/log_1_104.arc

    104/log2/log_1_104.arc

    Youaccidentallydeletelogs102and104fromlog1.Yourunthiscommand:

    BACKUPARCHIVELOGFROMSEQUENCE101UNTILSEQUENCE105;

    Whathappens?()


    参考答案:D

  • 第19题:

    有Table1,Table2两表,Table2是Table1的从表,Table1表有字段head_id(主键)和head_name,Table2表有字段Line_id(主键),head_id(外键),line_name,现要求查询统计出有那些hand_name在Table2表中有2条以上的数据。请写出你的SQL语句。


    正确答案:select t1.head_name, count(1)   from Table1 t1, Table2 t2  where t1. head_id = t2. head_id  group by t1.head_name  having count(1)>2  

  • 第20题:

    若用如下的SQL语句创建一个student表:CREA TETABLE student(NO CHAR(4)NOT NULL,NAME CHAR(8)NOT NULL,SEX CHAR(2),AGE INT)可以插入到student表中的是()

    • A、(’1031’,’曾华’,男,23)
    • B、(’1031’,’曾华’,NULL,NULL)
    • C、(NULL,’曾华’,’男’,’23’)
    • D、(’1031’,NULL,’男’,23)

    正确答案:B

  • 第21题:

    数据库中有一张表名称为Student,有列Number,Name,Age,IDCard,Sex。主键为Number。统计学生总人数,下列哪个SQL语句是正确的()

    • A、Select Count(1)From Student
    • B、Select Sum(*)From Student
    • C、Selec tAvg(*)From Student
    • D、Select Count(*)From Student

    正确答案:A,D

  • 第22题:

    使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是()。

    • A、REPLACE AGE WITH AGE+1
    • B、UPDATE STUDENT AGE WITH AGE+1
    • C、UPDATE SET AGE WITH AGE+1
    • D、UPDATE STUDENT SET AGE=AGE+1

    正确答案:D

  • 第23题:

    多选题
    BookStore数据库中有客户表Customer(CustomerCode,Name,Sex,Hometown,Email,Telephone,LoginDate,Password)删除Customer表中姓“刘”和姓“杨”的记录。SQL语句:DELETE FROMCustomer WHERE()
    A

    LEFT(Name,1)=‘刘’ORLEFT(Name,1)=‘杨’

    B

    NameLIKE‘刘%‘ORNameLIKE杨%‘

    C

    NameLIKE‘[刘,杨]%‘

    D

    NameLIKE‘[^刘,^杨]%


    正确答案: C,B
    解析: 暂无解析