数据库笔试面试
1. SQL数据库面试题 急急急
a)select pname as '商品名',avg(qty) as 平均销售量 from s,p,m where m.city='上海' and s.mno=m.mno and p.pno=s.pno,select p.Pno,p.pname,sum(s.qty)
from s left join p on s.pno=p.pno left join m on p.Mno=m.Mno
where m.city='上海市'
group by p.Pno,p.pname,p.city,p.color
b)、先删除Sale表的外键PNO,再删除gds表。
c)联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系
区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
2. 数据库面试题!!!!
表t 字段 d(varchar8)
select RIGHT('00000000' + d ,8) from t
update t
set d = RIGHT('00000000' + d ,8)
3. 有关数据库的笔试题
确实,这个问题得用点时间。我先给你开个头,有空给你补上:
问题一:(需要说明下表和字段主键就OK了)
需要建三个表:具体字段可以自己再加
程序员信息表、部门表、上级部门表
**************************************
CREATE TABLE [Programmer] (
[ProgrammerCode] [int] NOT NULL ,
[ProgrammerName] [char] (10) COLLATE Japanese_CI_AS NULL ,
[ProgrammerSex] [int] NOT NULL ,
[BelongBranch] [int] NOT NULL ,
[other] [char] (10) COLLATE Japanese_CI_AS NULL ,
CONSTRAINT [PK_Programmer] PRIMARY KEY CLUSTERED
(
[ProgrammerCode]
) ON [PRIMARY]
) ON [PRIMARY]
GO
*****************************************
CREATE TABLE [Branch] (
[BranchCode] [int] NOT NULL ,
[BranchName] [char] (10) COLLATE Japanese_CI_AS NOT NULL ,
[BelongTo] [int] NOT NULL ,
[OtherInformation] [char] (10) COLLATE Japanese_CI_AS NULL ,
CONSTRAINT [PK_Branch] PRIMARY KEY CLUSTERED
(
[BranchCode]
) ON [PRIMARY]
) ON [PRIMARY]
GO
***************************************
CREATE TABLE [LeaderBranch] (
[LeaderBranch] [int] NOT NULL ,
[LeaderBranchName] [char] (10) COLLATE Japanese_CI_AS NOT NULL ,
[OtherInformation] [char] (10) COLLATE Japanese_CI_AS NULL ,
CONSTRAINT [PK_LeaderBranch] PRIMARY KEY CLUSTERED
(
[LeaderBranch]
) ON [PRIMARY]
) ON [PRIMARY]
GO
******************************************************
问题2:
各部门人数查询:
SELECT BranchName,count (*) AS 程序员人数
FROM Programmers p INNER JOIN Branch b ON p.BelongBranch = b.BranchCode
GROUP BY BranchName
上级部门人数查询:
SELECT LeaderBranchName,count (*) AS 程序员人数
FROM Programmers p INNER JOIN Branch b ON p.BelongBranch = b.BranchCode
INNER JOIN LeaderBranch l ON b.BelongTo = l.LeaderBranch
GROUP BY l.LeaderBranchName
——————————————————————————————
问题三有空再给你答,呵呵~~
4. 三分钟数据库面试题
SELECT last_name,salary FROM employees WHERE salary=(SELECT max(salary) FROM employees);
5. 一道数据库的面试题
看到这个题目首先想到的就是对基本函数的考核:如何求平均值,版求出平均值如何筛选大权于70的值,如何分组等等
求平均值AVG(score),或者SUM(score)/submun
select name,AVG(score) from tab_sco group by name having AVG(score)>70
6. 如何快速提高数据库的知识,应付面试和笔试的
买点书看看,网上有教学,主要是多操作,面试就需要口才和反应了。平时多放松心情,打好基础,迎接以后的考试,呵呵,祝你考过,
7. 数据库面试题:
create database aaa;
create table users(id int NOT NULL AUTO_INCREMENT,
user_name char(10),money char(10),add_time datetime
PRIMARY KEY (`id`))ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
3.insert into users values(2,'a1','a11',current_date),(3,'a1','a11',current_date),(4,'a1','a11',current_date),(5,'a1','a11',current_date),(6,'a1','a11',current_date),(7,'a1','a11',current_date),(8,'a1','a11',current_date),(9,'a1','a11',current_date),(10,'a1','a11',current_date),(11,'a1','a11',current_date);
4.参考第二步
5.参考第三步
6.select a.username,a.money,b.email,b.user_phone,b.weigh from users a,user_info b
where a.id=b.id and a.id=XXX(你指定的);
7.mysqlmp -uroot -p aaa > /tmp/aaa.sql (需要输入密码)
我用的是mysql上的写法
8. 数据库面试题
createdatabaseaaa;createtableusers(idintNOTNULLAUTO_INCREMENT,user_namechar(10),moneychar(10),add_timedatetimePRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8;3.insertintousersvalues(2,'a1','a11',current_date),(3,'a1','a11',current_date),(4,'a1','a11',current_date),(5,'a1','a11',current_date),(6,'a1','a11',current_date),(7,'a1','a11',current_date),(8,'a1','a11',current_date),(9,'a1','a11',current_date),(10,'a1','a11',current_date),(11,'a1','a11',current_date);4.参考第二步5.参考第三步6.selecta.username,a.money,b.email,b.user_phone,b.weighfromusersa,user_infobwherea.id=b.idanda.id=XXX(你指定的);7.mysqlmp-uroot-paaa>/tmp/aaa.sql(需要输入密码)我用的是mysql上的写法
9. SQL数据库笔试题
create procere ttt
@ii int, /需要查询的课程名称
@nn varchar(10) output /输出变量
as
select @nn=max(课程表.成绩)
from 成绩表
where 成绩表.课程=@ii
go
大概如此回 多设置几个变量,把剩下答的查出来就ok了