- 浏览: 1510409 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (595)
- Java咖啡厅 (208)
- IT杂侃 (23)
- 程序员笑话 (7)
- 我的后现代文学 (1)
- WEB编程 (116)
- 软件评测 (8)
- 操作系统 (3)
- 炫目Ruby (2)
- 行业知识 (7)
- 我的动漫情结 (6)
- 其他 (8)
- Window DIY (6)
- 古文学 (3)
- 转载文章 (2)
- IT百科 (7)
- 动态网页Active (1)
- 文档 (1)
- 设计理论 (11)
- .NET 快速开发 (18)
- 英语学习 (6)
- 网站分析 (2)
- 开源软件 (4)
- 数据库 (28)
- 笔记 (4)
- 源代码共享 (8)
- IT人物 (2)
- 软件管理 (10)
- 小说创作 (0)
- 大众软件 (12)
- 网站评论 (3)
- 小虾乱说 (10)
- 游戏 (8)
- 心情 (3)
- 娱乐休闲 (2)
- Delphi编程 (1)
- PHP编程 (4)
- 中间件 (2)
- 移动开发 (2)
- Office应用 (2)
- Photoshop (1)
- Eclipse (5)
- 面试题 (1)
- 手机评测 (0)
- VBScript (1)
- WEB前端-EXT (3)
- 吐槽 (1)
- Java咖啡厅 Ibatis (1)
- javascript Ext (1)
- jquery ui (1)
- require (1)
- WEB编程 Javascript (1)
- jquery (1)
- Swing (1)
- 分布式 (1)
最新评论
-
zhangjihao:
28. 下面哪个Set是排序的? A. LinkedHas ...
Java面试题(选择题) -
zhangthe9:
ICMP报文被封装在IP包里,也就是说他是由IP协议承载的,从 ...
Java面试题(选择题) -
zhunengfei:
真的假的?
自已写的jquery ui框架 -
white_crucifix:
少年,发烫是所有智能手机的特点,而莫名发烫是所有安卓手机的特点 ...
【吐槽】三星手机的OS是一砣屎 -
suzu88:
试了一下,可以用。如果美化一下控件和窗体更有意思。
一个用XML构建Swing视图的框架
1. 新建学生-课程数据库的三个表:
学生表:Student(Sno,Sname,Ssex,Sage,Sdept) Sno为主码;
课程表:Course(Cno,Cname,Cpno,Credeit) Cno为主码;
学生选修表:SC(Sno,Cno,Grade) Sno,Cno,为主码;
Student
学号(Sno) | 姓名 Sname | 性别 Ssex | 年龄 Sage | 所在系 Sdept |
95001 | 李勇 | 男 | 20 | CS |
95002 | 刘晨 | 女 | 19 | IS |
95003 | 王敏 | 女 | 18 | MA |
95004 | 张立 | 男 | 19 | IS |
Course:
课程号 Cno |
课程名 Cname |
先行课 Cpno |
学分 Credit |
1 | 数据库 | 5 | 4 |
2 | 数学 | 2 | |
3 | 信息系统 | 1 | 4 |
4 | 操作系统 | 6 | 3 |
5 | 数据结构 | 7 | 4 |
6 | 数据处理 | 2 | |
7 | Pascal语言 | 6 | 4 |
SC:
学号 Sno |
课程号 Cno |
成绩 Grade |
95001 | 1 | 92 |
95001 | 2 | 85 |
95001 | 3 | 88 |
95002 | 2 | 90 |
95002 | 3 | 80 |
数据库生成语句:
create database stu_course use stu_course create table student( sno varchar(32), sname varchar(32), ssex varchar(32), sage int, sdept varchar(32) ) create table Course( Cno varchar(32), Cname varchar(32), Cpno varchar(32), credit int ) create table SC( Sno varchar(32), Cno varchar(32), Grade int )
一:查询表中的列和行
1:查询全体学生的学号与姓名
select sno,sname from student
2:查询全体学生的姓名、学号、所在系。
select sno,sname,sdept from student
3:查询全体学生的详细记录
select * from student
4:查询全体学生的姓名及出生年份
select sname,DATEPART(yy, GETDATE()) - sage + 1 from student (SQLServer)
5:查询全体学生的姓名,出生年份及所在系,要用小写字母表示系名
select sname,DATEPART(yy, GETDATE()) - sage + 1,lower(sdept) from student
6:查询选修了课程的学生学号
select sno,cno from sc
7:查询选修了课程的学生姓名
select distinct sname from student,sc where student.sno=sc.sno
二:条件查询:
常用的查询条件
查询条件谓词
比较=,<,>,>=,<=,!=,<>,!>,!<;
not+上述比较运算符
确定范围Between and,Not between And,
确定集合IN,not IN
字符匹配Like,Not Like
空值IsNull,ISNOTNULL
多重条件AND,OR
1:查询计算机系全体学生的姓名
select sname from student where sdept=”CS”
2:查询所有年龄在20岁以下的学生姓名及其年龄
select sname,sage from student where sage<20
3:查询考试成绩有不及格的学生的学号
select sno from sc where grade<60
4:查询年龄在20到23间的学生的姓名,系别及年龄
select sname,sdept,sage from student where sage between 20 and 23
5: 查询年龄不在20到23间的学生的姓名,系别及年龄
select sname,sdept,sage from student where sage not between 20 and 23
6:查询信息系(IS),数学系(MA)和计算机系(CS)学生的姓名和性别
select sname,ssex from student where sdept in("IS","MA","CS")
7:查询不是信息系(IS),数学系(MA)和计算机系(CS)学生的姓名和性别
select sname,ssex from student where sdept not in("IS","MA","CS")
8:查询学号为”95001”的学生详细情况
select * from student where sno=95001
9:查询所有姓刘的学生的姓名,学号和性别(where name like ‘刘%’)
select sname,sno,ssex from student where sname like '刘%'
10:查询姓”欧阳”且命名为三个汉字的学生的姓名
select sname from student where sname like '欧阳_'
11:查询名字中第2个字为”阳”字的学生姓名和学号(where sname like '_阳%')
select sname,sno from student where sname like '_阳%'
12:查询所有不姓刘的学生姓名
select sname from student where sname not like '刘%'
13:查询DB_Design课程的课程号和学分(where cname like 'Db\_Design' Escape'\')
select cno,gredit from course where cname like 'Db\_Design' Escape '\'
14:查询以”DB_”开头,且倒数第3个字符为i的课程的详细情况(where cname like ‘DB\_%i__’escape’\’)
‘DB\_%i__’escape’\’)
select cno,gredit from course where cname like ‘Db\_%i__’escape’\’
15:查询缺少成绩的学生的学号和相应的课程号(where grade is not null)
select sno,cno from sc where grade is null
16:查询有成绩的学生学号和课程号
select sno,cno from sc where grade is not null
17:查询计算机系年龄在20岁以下的学生姓名
select sname from student where sdept=”CS” and sage<20
18:查询选修了3号课程的学生的学号及其成绩,分数降序排列
select student.sno,grade from student,sc
where student.sno=sc.sno and sc.cno=3 order by grade desc
19:查询全体学生情况,结果按所在系的号升序排列,同一系中的学生按年龄降序
select * from student order by sdept,sage desc
三:使用集函数
count,sum,avg,max,min
1:查询学生的总人数
select count(sno) from student
2:查询选修了课程的学生人数(select count(distinct sno))
select count(distinct sno) from SC
3:计算1号课程的学生平均成绩
select avg(grade) from SC where cno='1'
4:查询选修1号课程的学生最高分数
select max(grade) from SC where cno='1'
5:求各个课程号及相应的选课人数
select cno,count (sno) from sc group by cno
6:查询选修了3门以上的课程的学生学号
select sno
from sc
group by sno
having count(*)>3
四:连接查询:
<1>等值与非等值的连接查询
在连接查询中用来连接两个有的条件称为连接条件或连接谓词,,当连接运算符号为”=”时,称为等值连接,使用如,=,<,>,<=,>=,!=连接时称非等值连接
1:查询每个学生及其选修课程的情况
select student.*,sc.*
from student,sc
where student.sno=sc.sno
<2>自身连接
连接操作在同一个表中进行连接查询
2:查询每一门课的间接先修课(即先修课的先修课)
select first .cno,second.cpno
from course first ,course second
where first.cpno=second.cno
五:复合条件连接
1:查询选修2号课程且成绩在90分以上的所有学生。
Select student,sname
form student, sc
Where student.sno=sc.sno And
Sc.cno=’2’ and sc.grade>90
六:嵌套查询
1:带有谓词in的子查询
<1>查询与“刘晨”在同一个系学习的学生
select sno,sname,sdept
from student
where sdept in(
select sdept
from student
where sname='刘晨')
或:
select s1.sname,s1.sdept
from student s1,student s2
where s1.dept=s2.dept and s2.name='刘晨'
<2>查询选修了课程名为“信息系统”的学生学号和姓名
select sno,sname
from student
where sno in
( select sno
from sc
where cno in
(select cno
from course
where cname='信息系统')
或:
select sno,sname
from student,sc,course
where student.sno=sc.sno and
sc.cno=course.cno and
course.cname='信息系统')
2:带有Any 或all谓词的子查询
<1>查询其他系中比信息系中某一学生年龄小的学生姓名和年龄
select sname, sage
from student
where sage <any(select sage
from student
where sdept=’is’)
and sdept<>’is’
或用集函数:
select sname, sage
from student
where sage<
(select max(sage)
from student
where sdept=’is’)
and sdept<>’is’
<2> 查询其他系中比信息系所有学生年龄都小的学生姓名及年龄
select sname, sage
from student
where sage<all
(select sage
from student
where sdept=’is’)
and sdept<>’is’
3 带有Exitst谓词的子查询
<1>查询所有选修了1号课程的学生姓名
select sname
from student
where exists
(select *
from sc
where sno=student.sno and cno='1')
<2>查询没有选修1号课程的学生姓名
select sname
form student
where not exists
(select *
form sc
where sno=stuedent.sno and cno=’1’)
<2>查询选修所有全部课程的学生姓名
select sname
from student
where not exists
(select *
from course
where not exists
(select *
from sc
where sno=student.sno
and cno=course.cno)
<3>查询只选修了学生95002选修的全部课程的一部分的学生号码
select distinct sno
from sc scx
where not exists
( select *
from sc scy
where scy.sno=’95002’ and
not exists
( select *
from sc scz
where scz.sno=scx.sno and
scz.cno=scy.cno)
)
二:
题一:表A数据如下:
FYear FNum
2006 1
2006 2
2006 3
2007 4
2007 5
2007 6
按如下格式显示:
年度 2006 2007
汇总 6 15
方案一:
create table 表名(FID varchar(10), Field1 varchar(100))
go
insert into 表名 select 1,'A'
insert into 表名 select 1,'B'
insert into 表名 select 1,'C'
insert into 表名 select 2,'D'
insert into 表名 select 2,'E'
insert into 表名 select 2,'F'
go
--创建一个合并的函数
create function f_merge(@name varchar(100))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ''
select @str = @str + ',' + cast(Field1 as varchar(100)) from 表名 where FID = @name
set @str = stuff(@str , 1,1,'')
return(@str)
End
go
--select * from 表名
--调用自定义函数得到结果:
select FID ,dbo.f_merge(FID) as tel from 表名 group by FID
drop table 表名
drop function f_merge
方案二:
select '汇总' as 年度
,[2006],[2007]
from
(select fyear,fnum from T)as sourceTable
pivot
(
sum(fnum)
for fyear in ([2006],[2007])
)
as pivotTable
回头发现可以用SQL2005 pivot 的方法很简单
题二:
表A数据如下:
FID Field1
1 A
1 B
1 C
2 D
2 E
2 F
要求按如下格式显示:
FID Field1
1 A,B,C
2 D,E,F
如何做到?
create table 表名(FID varchar(10), Field1 varchar(100))
go
insert into 表名 select 1,'A'
insert into 表名 select 1,'B'
insert into 表名 select 1,'C'
insert into 表名 select 2,'D'
insert into 表名 select 2,'E'
insert into 表名 select 2,'F'
go
--创建一个合并的函数
create function f_merge(@name varchar(100))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ''
select @str = @str + ',' + cast(Field1 as varchar(100)) from 表名 where FID = @name
set @str = stuff(@str , 1,1,'')
return(@str)
End
go
--select * from 表名
--调用自定义函数得到结果:
select FID ,dbo.f_merge(FID) as tel from 表名 group by FID
drop table 表名
drop function f_merge
发表评论
-
死锁产生的原因
2018-07-26 19:58 1246产生死锁的四个必要条件: (1) 互斥条件:一 ... -
数据库知识汇总贴
2017-01-02 01:04 7311、给数据库表增加一列 我们经常会有一些需求 ... -
H2使用备忘
2014-03-08 10:27 14821. 自增ID id int identit ... -
用Swing做的H2管理器
2014-02-07 12:16 0这是我自己用Swing做的H2管理器, 因为H2的页面管理 ... -
SQLServer日期格式化的方法
2012-07-31 09:40 3140--SQLSERVER 日期格式转换 SELE ... -
SQLPlus操作手册
2012-07-30 10:16 1532SQL*Plus是与Oracle数据库进行交互的一个非常重要、 ... -
Oracle 11g完全手册
2012-07-27 16:53 15451. Oracle下载 Oracle的官网为:www. ... -
Oracle常用操作方法收集
2012-07-23 14:12 14241) 查看用户的连接状况 select use ... -
查看数据库日志的方法
2012-06-26 11:27 1524在SQL Server 7.0和SQL Server200 ... -
增加次要数据文件以减轻主要数据文件的压力操作说明
2012-06-10 20:45 2522每当在SQLServer中创建 ... -
SQLServer2005学习笔记
2012-06-02 13:50 1245SQLServer新增了varchar(max)、nvarch ... -
视图的概念
2011-09-25 10:28 1430视图的含义 从用户角 ... -
Oracle导入导出数据
2011-04-10 09:51 2104Oracle里面的导入导出的命令很简单就是exp/imp, ... -
Microsfot SQL Server 2005 精简版下载
2011-04-06 12:40 1927SQLServer的主服务: http://www.c ... -
Oracle数据库新建方案
2010-08-21 13:21 15781、新建数据库 (1)在服务器端,用databas ... -
Oracle导出数据
2010-08-14 11:36 19871.1 exp 使用方法及 ... -
SQLServer 问题集锦
2010-08-08 08:51 1039今天要运行一个项目,用SQLServer 2000的,所以把本 ... -
修改MySQL的编码
2010-04-30 22:58 1270mysql的默认编码是latin,默认引擎是MyISAM。每次 ... -
SQLServer备忘录
2010-04-17 00:40 1136修改数据库表结构: alter table 表名 a ... -
MySQL GUI Tools
2010-03-25 23:45 1737MySQL GUI Tools是MySQL官方提供的可视化操作 ...
相关推荐
### ORACLE数据库笔试题解析及知识点总结 #### 一、选择题解析 1. **算法的执行效率与数据的存储结构无关** - **解析**: 正确选项为 **C**。算法的执行效率与数据的存储结构密切相关。例如,数组与链表在查找、...
数据库笔试题是评估应聘者在数据库管理、设计、优化等方面能力的重要方式,涵盖了SQL语言、关系数据库理论、索引、事务处理、存储引擎等多个方面。本压缩包“数据库笔试题及答案.rar”显然包含了这样的练习题目及其...
根据给定文件的信息,我们可以总结出一系列关于数据库笔试题及答案的重要知识点,这些知识点涵盖了算法基础知识、数据结构、面向对象编程、软件工程方法论、数据库系统原理等方面。 ### 数据库笔试题知识点解析 ##...
数据库笔试题及答案涵盖了许多关于数据库和编程的基础知识。这些题目主要涉及算法、数据结构、数据库管理系统、数据库设计以及数据库查询语言SQL。 1. 算法和数据结构: - 算法的执行效率与数据的存储结构有关,...
【数据库笔试题及答案】 1. 选择题的第1题涉及算法的性质。正确答案是C,算法的有穷性意味着它必须在有限步骤后结束。这与数据的存储结构(A)、算法程序的指令数量(B)或描述方式(D)无关。 2. 第2题中,线性...
### 数据库笔试题知识点解析 #### 一、基础知识与数据结构 1. **算法与数据结构的关系** - **选项A**:算法的执行效率实际上与数据的存储结构紧密相关。不同的数据结构会影响算法的时间复杂度和空间复杂度。 - **...
根据给定文件的信息,我们可以总结出一系列关于MySQL数据库的基础知识点,涵盖了SQL语言的基本操作、数据检索、表结构管理以及高级特性等内容。以下是针对文件中提到的一些关键知识点的详细解释: ### 1. 聚合函数 ...
数据库笔试题数据库笔试题
SQL 笔试题是数据库领域中的一个重要组成部分,涉及到数据库的各个方面,包括触发器、存储过程、索引、内存泄漏、事务、锁、视图、游标等知识点。 1. 触发器的作用:触发器是一种特殊的存储过程,通过事件来触发...
三级数据库笔试试题三级数据库笔试试题
【MySQL数据库基础知识】 1. 数据库系统的核心是...以上是对MySQL数据库基础理论和操作的知识点详解,包括核心概念、SQL语言功能、事务处理、数据完整性、数据库安全性等方面,这些都是在数据库笔试中常见的考察点。
数据库笔试题实习生数据库 本资源摘要信息涵盖了数据库相关的笔试题,涵盖了算法、数据结构、结构化程序设计、面向对象方法、软件开发、数据库系统、SQL 语句等知识点。本资源为数据库实习生提供了广泛的知识点,...
三级数据库笔试真题的出现,通常是指针对国家计算机等级考试三级数据库技术科目的考核内容。这个压缩包文件很可能是历年来的考试题目集合,旨在帮助考生熟悉考试格式、重点和难点。 首先,我们要明白三级数据库考试...
经典 SQL 数据库笔试题及答案整理_ningmengban的博客-CSDN博客_数据库笔试题.lnk
在准备进入大公司,尤其是像淘宝这样的知名互联网企业面试时,了解其数据库笔试题是非常重要的一步。淘宝作为电商行业的领头羊,其数据库系统庞大且复杂,涉及到的技术点广泛而深入。下面,我们就来详细探讨一下淘宝...
数据库笔试题及答案涵盖了许多关于计算机科学和技术的基础知识,尤其是数据库相关的概念。这些题目涉及到算法、数据结构、软件开发过程、数据库管理系统等多个方面。 1. 题目中提到的算法执行效率与数据的存储结构...