数据库笔试题目

来源:百度知道 编辑:UC知道 时间:2024/06/14 07:44:19
有两个表,例如
PRODUCT表
ID --产品id(主键,自增长) int
PRODUCTNAME --产品名称 nvarchar(200)
PRODUCTCOUNT --产品数量 int
USERNAME --用户名(与表USERS中的username关联)nvarchar(200)

USERS表
ID --用户id(主键,自增长)int
USERNAME --用户名 nvarchar(200)
1.问题很简单,分别写出两个表的增删改语句(t-sql)
我不明白的是产品表和用户表的字段有关联,那向产品表插入记录(USERNAME)怎么确定是否已存在于USERS表中?
如果有答案请写出来或发送到下面的邮箱
2.3.查询,都很简单
4.存储过程:向产品表中插入一条记录并返回他的ID
我的问题是如何返回这个ID,有函数的尽量说明一下这个函数的功能,对数据库函数知之甚少
特别欢迎DBA进来回答,另一题目http://zhidao.baidu.com/question/74774412.html
mailto:hqwfk@126.com
最后确认一下:
insert into...values...语句里是不是不能嵌套其他语句了?
insert into...values...可以再增加选择条件吗?如果可以写个例子

1.增加删除
因为两个表的USERNAME字段是应该是设置了外键关联,这样不仅结构清晰,而且还确保了数据的完整性。看题目的意思是USERS跟PRODUCT的对应关系应该是1:n,一个USERS可以生产许多个PRODUCT。

INSERT INTO PRODUCT(PRODUCT.PRODUCTNAME,PRODUCT.PRODUCTCOUNT,PRODUCT.USERNAME) VALUES (char,int,char);
插入产品

INSERT INTO USERS (USERNAME) VALUES (char);
插入用户

删除就省略了。

至于如何确定是否存在,你直接在插入产品前搜索USERS表就好了啊

4.存储过程
CREATE PROC proc_AddUserAccount //定义一个过程名
@pName nvarchar(200),@pCount intAS,@pUser nvarchar(200)//3个变量
BEGIN
INSERT INTO PRODUCT(PRODUCT.PRODUCTNAME,PRODUCT.PRODUCTCOUNT,PRODUCT.USERNAME) VALUES (@pName,@pCount ,@pUser);//添加记录
RETURN @@ID //返回ID
END

1.第一个很简单...只是你不明白的地方是USERNAME字段怎么确定有USERS表中存在.这是一个数据库的外键.也就是当你插入数据时USERNAME字段的内容必须存在于USERS表的USERNAME字段中.你明的这个后第一个问题就很简单了.
4.这个我也没有什么好办法用存储过程吧.
create proc 存储过程名
@productname nvarchar
@productcount int
@username nvarchar
as
@id int
begin
insert into 产品表(productnam