SqlServer⾯试题汇总
WechatIMG264.jpeg
1.SqlServer2012系统数据类型有哪些?
数据类型符号标识
数据类型bigint、int、smallint、tinyint
整数型精确数值型decimal、numericsql查询面试题及答案
浮点型float、real
货币型money、smallmoney
位型bit
字符型char、varchar、varchar(MAX)
Unicode字符型nchar、nvarchar、nvarchar(MAX)
⽂本型text、ntext
⽇期时间类型datetime、smalldatetime、date、time、datetime2、datetimeoffset 时间截型timestamp
图像型image
其他cursor、sql_variant、table、uniqueidentifier、xml、hierarchyi 2.写出创建产品销售数据厍cpxs中所有表的SQL语句。其所包含的表如下。
产品表:产品编号,产品名称,价格,库存量。
销售商表:客户编号,客户名称,地区,负责⼈,电话。
产品销售表:销售⽇期,产品编号,客户编号,数量,销售额。
[产品编号] char(12) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[产品名称] char(20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[价格] money NULL DEFAULT ((0)),
[库存量] smallint NULL DEFAULT ((0))
)
ON [PRIMARY]
GO
ALTER TABLE [dbo].[product] SET (LOCK_ESCALATION = TABLE)
GO
EXEC sp_addextendedproperty 'MS_Description', '产品表', 'SCHEMA', 'dbo', 'TABLE', 'product'
CREATE TABLE [dbo].[seller] (
[客户编号] char(8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[客户名称] char(4) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[地区] char(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[负责⼈] char(4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[电话] char(11) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
)
ON [PRIMARY]
GO
ALTER TABLE [dbo].[seller] SET (LOCK_ESCALATION = TABLE)
GO
EXEC sp_addextendedproperty 'MS_Description', '销售商表', 'SCHEMA', 'dbo', 'TABLE', 'seller'
CREATE TABLE [dbo].[product_sales] (
[销售⽇期] datetime NOT NULL,
[产品编号] char(12) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[客户编号] char(8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[数量] smallint NULL DEFAULT ((0)),
[销售额] money NULL DEFAULT ((0))
)
ON [PRIMARY]
GO
ALTER TABLE [dbo].[product_sales] SET (LOCK_ESCALATION = TABLE)
GO
EXEC sp_addextendedproperty 'MS_Description', '产品销售表', 'SCHEMA', 'dbo', 'TABLE', 'product_sales'
3.在第2题中所创建的cpxs数据库的产品表中增加”产品简介“列,之后在删除该列。
ALTER TABLE [dbo].[product]
ADD [产品简介] text
ALTER TABLE [dbo].[product]
DROP COLUMN [产品简介]
4.写出SQL语句,对产品销售数据库产品表进⾏如下操作。
(1)插⼊如下记录。
产品编号产品名称价格库存量0001空调3000200 0203电冰箱2500100 0301彩⾊电视机280050 0421微波炉150050
( '0001', '空调', '3000', '20'),
( '0203', '电冰箱', '2500', '100'),
( '0301', '彩⾊电视机', '2800', '50')
( '0421', '微波炉', '1500', '50')
;
(2)将产品数据库的产品表中每种商品的价格打8折
UPDATE [dbo].[product] SET [价格]=[价格]*0.8
(3)将产品数据库的产品表中价格打8折后低于50元的商品删除
DELETE [dbo].[product] WHERE [价格]<50
(4)查价格在2000~2900元之间的商品名。
SELECT [产品名称] FROM [dbo].[product] WHERE [价格] BETWEEN 2000 AND 2900
(5)计算所有商品的总价格。
SELECT SUM([价格]*[库存量]) FROM [dbo].[product]
(6)在产品销售数据库上创建电冰箱产品表的视图bxcp。
CREATE VIEW [dbo].[bxcp] AS SELECT
dbo.product.*
FROM
dbo.product
WHERE
[产品名称]='电冰箱'
(7)在bxcp视图中查询库存量在100台以下的产品编号。
SELECT * FROM [dbo].[bxcp] WHERE [库存量]<100
5.使⽤EXISTS关键字引⼊的⼦查询与使⽤IN关键字引⼊的⼦查询在语法上有哪些不同?
// EXISTS ⽅式
SELECT * FROM A WHERE EXISTS(SELECT * FROM B WHERE B.id=A.uid);
// in  ⽅式
SELECT * FROM A WHERE id IN (SELECT id  FROM B);
6. WHERE⼦句与HAVING⼦句有何不同?
Where是⼀个约束声明,是在查询结果集返回之前约束来⾃数据库的数据,且Where中不能使⽤聚合函数。Having是⼀个过滤声明,是在查询结果集返回以后对查询结果进⾏的过滤操作,在Having中可以使⽤聚合函数。
7.试说明游标的种类和⽤途。
种类:前端(客户端)游标、后端(服务器端)游标
⽤途:游标提供了对⼀个结果集进⾏逐⾏处理的能⼒,游标可看做⼀种特殊的指针,它与某个查询结果相联系,可以指向结果集的任意位置,以便对指定位置的数据进⾏处理。
8.举例说明游标的使⽤⽅法和步骤。
声明游标
打开游标
读取数据
关闭游标
删除游标

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。