SQL面试练习题一(基础)

这篇文章中具体使用的是PL/SQL语法,之前一直放在Oracle分类中。但是考虑到如今SQL Server,MySQL都支持windows functions了(有时也叫analytic functions),所以把文章整理后放到了单独的分类中。

其实面试时对SQL的考察还是比较简单的,主要的考察点是:

1,基本的表join。主要考察inner join和left join。

2,group by的使用。

3,开窗函数(也称为分析函数)。这通常是高级一点的应用了,不一定会考察到。pivot函数等因为并不常用,基本都不会涉及。

总之对SQL的考察基本上还是立足于实际,考察面试人解决实际问题的能力。

 

基础部分:

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

下面的练习题是针对订单表(订单信息)和订单详表(存储一个订单对应的多个物品):

Order_id, Customer_id, order_date
O1, C1, 01-Jan-2000
O2, C2, 01-Jan-2002
O3, C3, 01-Apr-2002
O4, C4, 01-Apr-2003
O5, C4, 01-Jan-2006
O6,C1, 01-May-2006
Item_id, Order_id
I1, O1
I2, O1
I3, O1
I1, O2
I5, O3

准备数据。注意对于标准SQL而言,是不能批量运行多条语句的,且结尾不能有;。因此想批量执行下面的插入SQL,则需要使用PL/SQL的语法,即使用block,且SQL结尾可以使用;。

或者使用http://sqlfiddle.com/ ,一个非常方便的online联系SQL的网站。直接将多行insert语句copy进去就可以执行。

begin
CREATE TABLE ORDER_LIST (ORDER_ID CHAR(2), CUSTOMER_ID CHAR(2), ORDER_DATE DATE);
INSERT INTO ORDER_LIST VALUES ('O1','C1',TO_DATE('2000-01-01','YYYY-MM-DD'));
INSERT INTO ORDER_LIST VALUES ('O2','C2',TO_DATE('2002-01-01','YYYY-MM-DD'));
INSERT INTO ORDER_LIST VALUES ('O3','C3',TO_DATE('2002-04-01','YYYY-MM-DD'));
INSERT INTO ORDER_LIST VALUES ('O4','C4',TO_DATE('2003-04-01','YYYY-MM-DD'));
INSERT INTO ORDER_LIST VALUES ('O5','C4',TO_DATE('2006-01-01','YYYY-MM-DD'));
INSERT INTO ORDER_LIST VALUES ('O6','C1',TO_DATE('2006-04-01','YYYY-MM-DD'));
CREATE TABLE ORDER_ITEMS (ITEM_ID CHAR(2), ORDER_ID CHAR(2));
INSERT INTO ORDER_
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLServer考试题及答案 选择题: 1、在MS SQL Server中,用来显示数据库信息的系统存储过程是( ) A sp_ dbhelp B sp_ db C sp_ help D sp_ helpdb 2、SQL语言中,删除一个表的命令是( ) A DELETE B DROP C CLEAR D REMORE 3、关系数据库中,主键是(__) A、为标识表中唯一的实体 B、创建唯一的索引,允许空值 C、只允许以表中第一字段建立 D、允许有多个主键的 4、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1___),使用关键字(2___)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3___),如果在SELECT语句中使用聚合函数时,一定在后面使用(4___)。 ⑴ A、SELECT,INTO B、SELECT,FROM C、SELECT,GROUP D、仅SELECT ⑵ A、DISTINCT B、UNION C、ALL D、TOP ⑶ A、JOIN B、UNION C、INTO D、LIKE ⑷ A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE 5、语句DBCC SHRINKDATABASE (Sample, 25)中的25表示的意思是 A、25M B、剩余占整个空间的25% C、已用空间占整个空间的25% D、以上都不对 6、你是一个保险公司的数据库开发人员,公司的保单信息存储在SQL Server 2000数据库中,你使用以下脚本建立了一个名为Policy的表: CREATE TABLE Policy (PolicyNumber int NOT NULL DEFAULT (0), InsuredLastName char (30) NOT NULL, InsuredFirstName char (20) NOT NULL, InsuredBirthDate datetime NOT NULL, PolicyDate datetime NOT NULL, FaceAmount money NOT NULL, CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber) ) 每次公司销售出一份保单,Policy表中就增加一条记录,并赋予其一个新的保单号,你将怎么做? a.建立一个INSTEAD OF INSERT触发器来产生一个新的保单号,并将这个保单号插入数据表中。 b.建立一个INSTEAD OF UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。 c.建立一个AFTER UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。 d.用AFTER UPDATE触发器替代DEFAULT约束条件产生一个新的保单号,并将这个保单号插入数据表中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值