[考试问讯]一道SQL问题,高手请进

[复制链接]
查看11 | 回复5 | 2021-1-10 10:15:50 | 显示全部楼层 |阅读模式
CREATE TABLE CUSTOMER
客户信息表

  (CUSTOMER_ID CHAR(10), 客户标示
   NAME CHAR(10),
姓名
   SEX NUMBER(1),
性别
   DEPARTMENT_ID(10),
单位标示
  )
  
  CREATE TABLE USER
用户信息表
  (CUSTOMER_ID CHAR(10), 客户标示
   USER_ID CHAR(10),
用户标示
   PNONE_NUM CHAR(11),
服务号码
   STATE CHAR(1),
在网状态
   SPECIAL CHAR(40),
特服功能
  )
  性别:0: 男 1 : 女
  在网状态:0: 正常
1:紧急停机 2:欠费
  
  customer.customer_id=user.customer_id
  
  1.如果有一张空表,严格按照以下两种操作顺序进行,结果有什么不同??
   谢谢大家啊!!!
  顺序一:
  INSERT INTOcustomer VALUES(’’0001’’,’’xiaoming’’,’’1’’,’’0001’’);
  INSERT INTOuser VALUES(’’0001’’,’’0001’’,’’133301110256’’,’’0’’,’’10000001000000’’);
  顺序二:
  INSERT INTOuser VALUES(’’0001’’,’’0001’’,’’133301110256’’,’’0’’,’’10000001000000’’);
  INSERT INTOcustomer VALUES(’’0001’’,’’xiaoming’’,’’1’’,’’0001’’);
  
  2.如果customer有100万行数据,user有3000万,请写出两种以上的sql,并比较执行效率。
  条件为1330110---1330119之间的在网状态为正常的客户名称和单位标示。
  3.假设目前两张表中有合法数据若干条,请写出客户服务号码以13301190开头,且在网状态
  为正常的客户名称,性别,服务号码,并根据性别代码将性别相应的显示为男,女
  

回复

使用道具 举报

千问 | 2021-1-10 10:15:50 | 显示全部楼层
没有高手么
   在线等

回复

使用道具 举报

千问 | 2021-1-10 10:15:50 | 显示全部楼层
你用的什么数据库?在什么平台上?
  
  1、应该没有不同!
  2、首先要知道你用的什么数据库!
  3、一个sql语句,看看sql教程就能查到!

回复

使用道具 举报

千问 | 2021-1-10 10:15:50 | 显示全部楼层
用的是or8i,
  

回复

使用道具 举报

千问 | 2021-1-10 10:15:50 | 显示全部楼层
1、没有不同,因为没有设外键
  2、这题简单,无非就是谁做基础表的问题,把记录少的当基础表当然会快,不会SQL的话,参照下面的就好了。ORACLE里面是从右到左解析,所以把记录条数少的表放在后面就快,放在前面就慢。
  3、
  SELECT
  CUSTOMER.CUSTOMER_ID,
  CASE WHEN(CUSTOMER.SEX=0) THEN(‘男‘) ELSE(‘女‘) END,
  USER.PNONE_NUM
  FROM CUSTOMER,USER
  WHERE
  CUSTOMER.CUSTOMER_ID=USER.CUSTOMER_ID AND
  SUBSTRING(USER.PNONE_NUM,1,8)=‘13301190‘ AND
  USER.STATE=‘0‘

回复

使用道具 举报

千问 | 2021-1-10 10:15:50 | 显示全部楼层
你这不会是某个公司的面试题吧?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行