文档库 最新最全的文档下载
当前位置:文档库 › SQL习题2007

SQL习题2007

SQL习题2007
SQL习题2007

S Q L 习题

商品销售数据库

Article(商品号char(4),商品名char(16),单价Numeric(8,2),库存量int)

Customer(顾客号char (4),顾客名char (8),性别char(2),年龄int)

OrderItem(顾客号char(4),商品号char(4),数量int, 日期date)

1用SQL建立三个表,须指出该表的实体完整性和参照完整性,对性别和年龄指出用户自定义的约束条件。(性别分成男女,年龄从10到100)。顾客表的数据用插入语句输入数据,其它两表可用任意方式输入数据。

2检索定购商品号为‘0001’的顾客号和顾客名。

3检索定购商品号为‘0001’或‘0002’的顾客号。

4检索至少定购商品号为‘0001’和‘0002’的顾客号。(用交的方法)

5检索至少定购商品号为‘0001’和‘0002’的顾客号。(用自表连接方法)

6检索没定购商品的顾客号和顾客名。

7检索一次定购商品号‘0001’商品数量最多的顾客号和顾客名。

8检索男顾客的人数和平均年龄。

9检索至少订购了一种商品的顾客数。

10检索订购了商品的人次数。

11检索顾客张三订购商品的总数量及每次购买最多数量和最少数量之差。

12检索至少订购了3单商品的顾客号和顾客名及他们定购的商品次数和商品总数量,并按商品总数量降序排序。

13检索年龄在30至40岁的顾客所购买的商品名及商品单价。

14创建一个视图GM,字段包括:顾客号,顾客名和定购的商品名,日期和金额(金额=数量*单价)。指定用内连接方式做。

检索购买的商品的单价至少有一次高于或等于1000元的顾客号和顾客名。

15检索购买的购买价都高于或等于1000元的顾客号和顾客名。

16检索女顾客购买的商品号,商品名和数量合计。

17检索所有的顾客号和顾客名以及它们所购买的商品号。(包括没买商品的顾客)

18检索这样的顾客号,顾客名,他们定购了所有的商品(除法)

19检索这样的顾客号,他们至少订购了顾客号为“0002”所订购的所有商品(除法)

20向Article表插入一条纪录。删除无人购买的商品。(检验一下刚插入的记录是否已被删除)

21降低已售出的数量总合超过10件的商品单价为原价的95%。

23.建立断言:顾客的年龄必须大于18岁。

以下不做

24.把修改商品单价的权限授给用户Wang, 用户Wang可以转授该权限。

25. 把修改商品单价的权限用户Wang收回,转授出去的也级联收回。

数据库SQL查询例题及解答

1 实验目的 1.熟悉数据库的交互式SQL工具。 2.熟悉通过SQL对数据库进行操作。 3.完成作业的上机练习。 2 实验工具sql server 利用Sql server及其交互式查询工具-查询分析器来熟悉SQL。 3 实验内容和要求 1)实验内容: 创建数据库boat,包括Sailors,Boats,Reserves三个表,表结构如下: Sailors(sid: integer, sname: string, rating: integer, age: real) 船员(船员编号,姓名,级别,年龄) Boats(bid: integer, bname: string, color: string) 船(船编号,名称,颜色) Reserves(sid: integer, bid: integer, day: date) 租赁(船员编号,船编号,日期) (注:下划线表示主键),并插入一定数据。 2)完成下列要求:

(1)查询所有船员的信息 (2)查询所有姓王的船员的信息 (3)查询租用过103号船的船员姓名 (4)查找租用过船只的船员编号 (5)查找rating>7且年龄>25的水手编号 (6)查找租用过红船和绿船的水手名字 (7)查找租用过红船或绿船的水手编号 (8)查找最年长的水手的年龄和名字 (9)在18岁以上水手中,对于每个rating级别中最少有两个水手以上的组中最年轻水手的年龄 (10)查找每条红色船只被租用的次数 (11)把30岁以上船员的级别调高一级 (12)删除所有年龄超过40岁的船员信息 (13)建立年龄超过25岁的船员的视图 (14)对(13)建立的视图,举一操作的例子(查询、删除、修改均可) 2)要求: a.建立boat数据库的SQL脚本,插入所有数据项的SQL脚本(包括所有的测试数据)。 b.记录完成查询要求的SQL语句脚本。 c.记录完成查询的查询结果。

SQL Server习题及答案

1. 有个用户的计算机不能连接到中心机房的SQL Server 2000上。你在调试过程中发现这个用户的计算机的网络功能是正常的,而且其他用户都能正常地连接到SQL Server 2000。下面的哪些工具有助于你诊断和解决该问题?(多选) A.Enterprise Manager B.Server Network Utility C.Profiler D.Query Analyzer E.Client Network Utility 答:B和E 2. 你在SQL Server 2000创建了酒店管理系统的数据库HotelDB,并创建了表CustInfo。当下面的哪些数据库被删除的情况下,仍能正确地执行“SELECT * FROM CustInfo?A.Model B.Tempdb C.Msdb D.Master E.Pubs 答:A、C、E 3. 你正在使用SQL Server 2000开发银行交易系统,为了保证商业数据在网络传输(用TCP/IP协议)时不会被窃取,你在SQL Server 2000中启用了网络加密功能。请问该功能在哪一层被实现? A.TCP/IP协议软件 B.超级套接字层 C.开放式数据服务 D.关系引擎 E.存储引擎 答:B 4. 你正在使用SQL Server 2000开发超市收银系统。在客户端编写软件时使用SQL语句“SELECT * FROM Products”来查询商品的信息,但是不小心把Products输入成Product。请问该错误在哪一层被发现? A.客户端的数据库API B.客户端的NET-LIBRARY C.服务器端的开放式数据服务 D.服务器端的关系引擎 E.服务器端的存储引擎 答:D

SQL SERVER 2000用户sa 登录失败的解决办法

SQL SERVER 2000用户sa 登录失败的解决办法 一.控制面板-》服务-》MS SQL SERVER-》登陆--》本地系统帐户--》重新启动MS SQL SERVER 用windows验证登陆查询分析器--》执行sp_password null,sa新密码,'sa' 二."无法连接到服务器,用户xxx登陆失败" 该错误产生的原因是由于SQL Server使用了"仅Windows"的身份验证方式, 因此用户无法使用SQL Server的登录帐户(如sa )进行连接.解决方法如下所示: 1.在服务器端使用企业管理器,并且选择"使用Windows 身份验证"连接上SQL Server 操作步骤: 在企业管理器中 --右键你的服务器实例(就是那个有绿色图标的) --编辑SQL Server注册属性 --选择"使用windows身份验证" --选择"使用SQL Server身份验证" --登录名输入:sa,密码输入sa的密码 --确定 2.设置允许SQL Server身份登录 操作步骤: 在企业管理器中 --展开"SQL Server组",鼠标右键点击SQL Server服务器的名称 --选择"属性" --再选择"安全性"选项卡 --在"身份验证"下,选择"SQL Server和Windows ". --确定,并重新启动SQL Server服务. 在以上解决方法中,如果在第 1 步中使用"使用Windows 身份验证"连接SQL Server 失败, 那就通过修改注册表来解决此问题: 1.点击"开始"-"运行",输入regedit,回车进入注册表编辑器 2.依次展开注册表项,浏览到以下注册表键: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]

SQL试题及答案

模拟测验1 一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题2分,总计20分) 1.()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。 A.DBMS B.DB C.DBS D.DBA 2.下列四项中,不属于SQL2005实用程序的是()。 A.对象资源管理器 B.查询分析器 C.服务管理器 D.媒体播放器 3.SQL Server安装程序创建4个系统数据库,下列哪个不是()系统数据库。 A.master B.model C.pub D.msdb 4.下列哪个不是sql数据库文件的后缀。 A..mdf B..ldf C..tif D..ndf 5.SQL语言允许使用通配符进行字符串匹配的*作,其中‘%’可以表示() A.零个字符 B.1个字符串 C.多个字符串 D.以上都是 6.SQL语言中,条件年龄BETWEEN15AND35表示年龄在15至35之间,且()。 A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 7.SQL的视图是从()中导出的。 A.基本表 B.视图 C.基本表或视图 D.数据库

8.在SQL语言中,建立存储过程的命令是() A、CREATE PROCEDURE B、CREATE RULE C、CREATE DURE D、CREATE FILE 9.SQL语言中,删除表中数据的命令是()。 A.DELETE B.DROP C.CLEAR D.REMOVE 10.在MS SQL Server中,用来显示数据库信息的系统存储过程是()。 A.sp_dbhelp B.sp_db C.sp_help D.sp_helpdb 二、简答题(16分) 1、什么是游标?使用游标的步骤? 2、什么是事务?事务的基本属性是什么? 三、应用题 1、创建一个名字为ks的数据库,包含一个数据文件和一个日志文件,逻辑文件名为ks_data,磁盘文件名为ks_data.mdf,文件初始容量为5MB,最大容量为10MB,文件递增量为1MB;而事务日志文件的逻辑文件名ks_log,磁盘文件名为ks_log.ldf,文件初始容量为1MB,最大容量为5MB,文件递增量为1MB(数据库创建在C:\SERVER文件夹下)(10分) 2、假设ks数据库有以下三张表,请写出下列问题的SQL语句:(每题6分,共54分) 学生(学号,姓名,年龄,性别) 课程(课程号,课程名,任课教师) 成绩(学号,课程号,成绩) (1)如何在SQL Server上创建这三张表; (2)查询刘峰教师所授课程号,课程名; (3)查询年龄大于20岁的所有男同学的学号、姓名; (4)查询王文芳同学选修的所有课程的课程号;

sql查询题目及答案

数据库中有如下三个表: 学生表(学号id,姓名name,性别sex,系部depart,年龄age)8个学生记录 选课表(学号id,课程号cid,成绩grade) 12门课程 课程表(课程号cid,课程名cname,学分Ccredit) 6门课程 学生-课程模式 S-T : 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade) 1.从学生表中查询所有同学的所有信息 select*from学生表 2.从学生表中查询所有学生的信息,并分别赋予一个别名 select学号as xuehao,姓名as xingming,性别as xingbie,系部as xibu,年龄as nianling from学生表 3.从学生表中查询姓名是Allen的学生的信息 select*from学生表 where姓名='Allen' 4.从学生表中查询 学号在1101到1199之间的所有学生的信息 select*from学生表 where学号between 1101 and 1199 5.从学生表中查询年龄小于18和大于20的所有学生的学号和姓名 select学号,姓名from学生表 where年龄<18 or年龄>20 6.从学生表中查询计算机系年龄小于20的所有学生的信息 select*from学生表 where系部='computer'and年龄<20 7.从学生表中查询姓名以A开头的学生的信息 select*from学生表 where姓名LIKE'A%'

SQL SERVER

SQL SERVER,打开企业管理器 1.创建数据库 在树形结构上打开节点: Microsoft SQL Servers -> (local)(Windows NT) -> 数据库 在数据库上右键-> 新建数据库-> 输入数据库名Management -> 确定此后在数据文件夹下多个了个名叫Management的数据库 2.创建表 创建表: 打开Management数据库的节点 点击表 在右则窗口里显示出很多系统表 然后在右则窗口空白处右键-> 新建表 打开建表视图 在列名与数据类型里填上 stud_id int stud_accounts varchar(20) stud_password varchar(40) stud_name varchar(20) stud_dept varchar(10) stud_job varchar(10) stud_time varchar(20) 在stud_id上建立主键,自增 保存 填上表名:system 这只是纸面上 如果有需求可以远程操作帮你看看 至于界面功能 这里一两句话也说不清楚地

1 create database stuDB 2 on primary -- 默认就属于primary文件组,可省略 3 ( 4/*--数据文件的具体描述--*/ 5 name='stuDB_data', -- 主数据文件的逻辑名称 6 filename='D:\stuDB_data.mdf', -- 主数据文件的物理名称 7 size=5mb, --主数据文件的初始大小 8 maxsize=100mb, -- 主数据文件增长的最大值 9 filegrowth=15%--主数据文件的增长率 10 ) 11 log on 12 ( 13/*--日志文件的具体描述,各参数含义同上--*/ 14 name='stuDB_log', 15 filename='D:\stuDB_log.ldf', 16 size=2mb, 17 filegrowth=1mb 18 ) 那么如何删除这个数据库呢,SQL Server将数据库的清单存放在master系统数据库的sysdatabases表中,只需要查看该表是否存在于该数据库中就可以 了,语句如下: use master -- 设置当前数据库为master,以便访问sysdatabases表 go if exists(select * from sysdatabases where name='stuDB') drop database stuDB go 创建表和删除表的SQL语句如下: use StuDB go if exists(select * from sysobjects where name='stuMarks') drop table stuMarks create table stuMarks ( ExamNo int identity(1,1) primary key, stuNo char(6) not null, writtenExam int not null, LabExam int not null

SQL经典习题及答案(新手必看)

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平'); 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 60);

sql查询练习题含答案

--(1)查询20号部门的所有员工信息。 select * from emp e where e.deptno=20; --(2)查询奖金(COMM)高于工资(SAL)的员工信息。 select * from emp where comm>sal; --(3)查询奖金高于工资的20%的员工信息。 select * from emp where comm>sal*0.2; --(4)查询10号部门中工种为MANAGER和20号部门中工种为CLERK的员工的信息。select * from emp e where (e.deptno=10 and e.job='MANAGER') or (e.deptno=20 and e.job='CLERK') --(5)查询所有工种不是MANAGER和CLERK, --且工资大于或等于2000的员工的详细信息。 select * from emp where job not in('MANAGER','CLERK') and sal>=2000; --(6)查询有奖金的员工的不同工种。 select * from emp where comm is not null; --(7)查询所有员工工资和奖金的和。 select (e.sal+nvl(https://www.wendangku.net/doc/e010682185.html,m,0)) from emp e; --(8)查询没有奖金或奖金低于100的员工信息。 select * from emp where comm is null or comm<100; --(9)查询员工工龄大于或等于10年的员工信息。 select * from emp where (sysdate-hiredate)/365>=10; --(10)查询员工信息,要求以首字母大写的方式显示所有员工的姓名。 select initcap(ename) from emp; select upper(substr(ename,1,1))||lower(substr(ename,2)) from emp; --(11)显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序, --若月份相同则按入职的年份排序。 select ename,to_char(hiredate,'yyyy') year,to_char(hiredate,'MM') month from emp order by month,year; --(12)查询在2月份入职的所有员工信息。 select * from emp where to_char(hiredate,'MM')='02' --(13)查询所有员工入职以来的工作期限,用“**年**月**日”的形式表示。 select e.ename,floor((sysdate-e.hiredate)/365)||'年' ||floor(mod((sysdate-e.hiredate),365)/30)||'月' ||floor(mod(mod((sysdate-e.hiredate),365),30))||'日' from emp e; --(14)查询从事同一种工作但不属于同一部门的员工信息。

SQL Server 2008登录问题(错误 233和18456)解决方法

今天使用 SQLSERVER2008 先遇到了233 错误,后又遇到了 18456 ,从网上找到了解决方法,具体如下: 一、原 帖https://www.wendangku.net/doc/e010682185.html,/luckcq@yeah/blog/static/1717477072011322102075 36/ 问题:已成功与服务器建立连接,但是在登录过程中发生错取。(provider:共享内存提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233) 解决方法:打开‘程序’-‘所有程序’-‘Microsoft SQL Server 2008 ’-‘配置工具’-‘SQL Server 配置管理器’,在弹出的窗体中,找到‘SQL Server 2008 网络配置’,把‘MSSQLSERVER的协议’下的“Named Pipes”和“TCP/IP”启动,然后重新启动Microsoft SQL Server 2008就可以了。 二、原帖https://www.wendangku.net/doc/e010682185.html,/qishuangquan/article/details/6024767 问题: SQLSERVER2008 18456错误 我是这么解决的: 1、以windows验证模式进入数据库管理器。

第二步:右击sa,选择属性:

在常规选项卡中,重新填写密码和确认密码(改成个好记的)。把强制实施密码策略去掉。 第三步:点击状态选项卡:勾选授予和启用。然后确定 第四步:右击实例名称(就是下图画红线的部分),选择属性。

第五步:点安全性,确认选择了SQL SERVER 和Windows身份验证模式。 第六步:重启SQLSERVER服务(重要)。 最后,如果数据服务器打开开了防火墙,请增加访问规则,添加TCP1433端口的

sql习题及答案

题 1、查询Student表中得所有记录得Sname、Ssex与Class列。 2、查询教师所有得单位即不重复得Depart列。 3、查询Student表得所有记录。 4、查询Score表中成绩在60到80之间得所有记录。 5、查询Score表中成绩为85,86或88得记录。 6、查询Student表中“95031”班或性别为“女”得同学记录。 7、以Class降序查询Student表得所有记录。 8、以Cno升序、Degree降序查询Score表得所有记录。 9、查询“95031”班得学生人数。 10、查询Score表中得最高分得学生学号与课程号。 11、查询‘3-105’号课程得平均分。 12、查询Score表中至少有5名学生选修得并以3开头得课程得平均分数。 13、查询最低分大于70,最高分小于90得Sno列。 14、查询所有学生得Sname、Cno与Degree列。 15、查询所有学生得Sno、Cname与Degree列。 16、查询所有学生得Sname、Cname与Degree列。 17、查询“95033”班所选课程得平均分。

18、假设使用如下命令建立了一个grade表: create table grade(low numeric(3,0),upp numeric(3),rank char(1)); insert into grade values(90,100,'A'); insert into grade values(80,89,'B'); insert into grade values(70,79,'C'); insert into grade values(60,69,'D'); insert into grade values(0,59,'E'); 现查询所有同学得Sno、Cno与rank列。 19、查询选修“3-105”课程得成绩高于“109”号同学成绩得所有同学得记录。 20、查询score中选学一门以上课程得同学中分数为非最高分成绩得记录。 21、查询成绩高于学号为“109”、课程号为“3-105”得成绩得所有记录。 22、查询与学号为108得同学同年出生得所有学生得Sno、Sname与Sbirthday列。 23、查询“张旭“教师任课得学生成绩。 24、查询选修某课程得同学人数多于5人得教师姓名。 25、查询95033班与95031班全体学生得记录。 26、查询存在有85分以上成绩得课程Cno、 27、查询出“计算机系“教师所教课程得成绩表。 28、查询“计算机系”与“电子工程系“不同职称得教师得Tname与Prof。

数据库中SQL查询语句习题含的答案

.word 版本可编辑. 查询问题:设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS ”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno ,Sname ,Sex FROM S WHERE Sdept =’CS ’; (2)检索学习课程号为C2的学生学号与姓名; (1)首先在C 表中找出“DS ”课程的课程号Cno ; (2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ; (3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。 SELECT Sno ,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS ’)); (4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SC WHERE Cno=‘C2’ OR Cno=‘C4’; (5)检索至少选修课程号为C2和C4的学生学号; SELECT Sno FROM SC X ,SC Y WHERE X.Sno=Y.Sno AND https://www.wendangku.net/doc/e010682185.html,o=‘C2’ AND https://www.wendangku.net/doc/e010682185.html,o=‘C4’ ; (6)检索不学C2课的学生姓名和年龄; 有学。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.Sno=S.Sno AND https://www.wendangku.net/doc/e010682185.html,o=https://www.wendangku.net/doc/e010682185.html,o )); (8)查询所学课程包含学生S3所学课程的学生学号。 分析:不存在这样的课程Y ,学生S3选了Y ,而其他学生没有选。 SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.Sno=‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno=X.Sno AND https://www.wendangku.net/doc/e010682185.html,o=https://www.wendangku.net/doc/e010682185.html,o )); 设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT ); 学习关系SC (SNO ,CNO ,GRADE ); 课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) 查询问题: 1:查所有年龄在20岁以下的学生姓名及年龄。 2:查考试成绩有不及格的学生的学号 3:查所年龄在20至23岁之间的学生姓名、系别及年龄。 4:查计算机系、数学系、信息系的学生姓名、性别。 5:查既不是计算机系、数学系、又不是信息系的学生姓名、性别 6:查所有姓“刘”的学生的姓名、学号和性别。 7:查姓“上官”且全名为3个汉字的学生姓名。 8:查所有不姓“张”的学生的姓名。 9:查DB_Design 课程的课程号。 10:查缺考的学生的学号和课程号。 11:查年龄为空值的学生的学号和姓名。 12:查计算机系20岁以下的学生的学号和姓名。 13:查计算机系、数学系、信息系的学生姓名、性别。 14:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。 15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。 16:查询学生总人数。 17:查询选修了课程的学生人数。 18:计算选修了C1课程的学生平均成绩。

SQL SERVER 2008匿名登录实现

注意:首先设置报表的数据源:将OverwriteDataSources设置为True。 1. 找到两个Web.config文件中的如下代码: 替换成: 2. 找到rsreportserver.config文件中的如下代码: true 替换成: true

3. 把文件Microsoft.Samples.ReportingServices.AnonymousSecurity.dll放到C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin目录下(注意:目录视具体安装情况而定) 4. 找到rsreportserver.config文件中的如下代码: 替换成: 5. 找到文件rssrvpolicy.config中的如下代码:

sql练习题+答案

(一)新建以下几个表 student(学生表): 其中约束如下: (1)学号不能存在相同的 (2)名字为非空 (3)性别的值只能是’男’或’女’ (4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系 (5)出生日期为日期格式 (6)年龄为数值型,且在0~100之间

cs(成绩表): 其中约束如下: (1)sno和cno分别参照student和course表中的sno,cno的字段(2)cj(成绩)只能在0~100之间,可以不输入值 course(课程表)

其约束如下: (1)课程号(cno)不能有重复的 (2)课程名(cname)非空 (三)针对学生课程数据库查询 (1)查询全体学生的学号与姓名。 (2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。 (3)查询全体学生的详细记录。 (4)查全体学生的姓名及其出生年份。 (5)查询学校中有哪些系。

(6)查询选修了课程的学生学号。 (7)查询所有年龄在20岁以下的学生姓名及其年龄。 (8)查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。 (9)查询年龄不在20~23岁之间的学生姓名、系别和年龄。 (10)查询信息系、数学系和计算机科学系生的姓名和性别。 (11)查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。

(12)查询所有姓刘学生的姓名、学号和性别。 (13)查询学号为2009011的学生的详细情况。(具体的学号值根据表中数据确定) (14)查询姓“欧阳”且全名为三个汉字的学生姓名 (15)查询名字中第2个字为“晨”字的学生的姓名和学号 (16)查询所有不姓刘的学生姓名。 (17)查询sql课程的课程号和学分。 (18)查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。

SQL练习题

测试表格 --1.学生表 Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号 --3.教师表 Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名 --4.成绩表 SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数 创建测试数据

学生表 Student create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男') insert into Student values('02' , N'钱电' , '1990-12-21' , N'男') insert into Student values('03' , N'孙风' , '1990-05-20' , N'男') insert into Student values('04' , N'李云' , '1990-08-06' , N'男') insert into Student values('05' , N'周梅' , '1991-12-01' , N'女') insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女') insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女') insert into Student values('08' , N'王菊' , '1990-01-20' , N'女') 科目表Course create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10)) insert into Course values('01' , N'语文' , '02') insert into Course values('02' , N'数学' , '01') insert into Course values('03' , N'英语' , '03')

sql语句练习题及答案

一在数据库 school 中建立student , sc, course 表。 学生表、课程表、选课表属于数据库 School ,其各自的数据结构如下:学生 Student (Sno,Sname,Ssex,Sage,Sdept) 课程表 course(Cno,Cname,Cpno,Ccredit) 学生选课 SC(Sno,Cno,Grade) 二设定主码 1 Student表的主码:sno 2 Course表的主码:cno 3 Sc表的主码:sno,cno 1写出使用 Create Table 语句创建表 student , sc, course 的SQL语句create table student (sno char(6), sname varchar(8), ssex char(2), sage smallint, sdept varchar(15), primary key(sno)); Create table course( Cno char(4) primary key, Cname varchar(20), Cpno char(4),

Ccredit tinyint) create table sc (sno char(6), cno char(4), grade decimal(12,2), primary key(sno,cno)); c 2 insert into student values( ’4001’,’赵茵’,’男’,20,’SX’) insert into student values( ’4002’,’杨华’,’女’,21,’JXJ’) Delete 1 删除所有 JSJ 系的男生 delete from Student where Sdept=’JSJ’ and Ssex=’男’; 2 删除“数据库原理”的课的选课纪录 delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’); Update 1 修改 0001 学生的系科为: JSJ Update student set sdept=’JSJ’ where sno=’0001’ 2 把陈小明的年龄加1岁,性别改为女。 Update student set age=age+1,ssex=’女’ where sname=’陈小明’ Select 查询语句 一单表 1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。 select sno, sname, sage from student where ssex=’女’ and sage between 19 and 21 order by sage desc; 2查询姓名中第2个字为“明”字的学生学号、性别。 select sno, ssex from student where sname like ’_明% ’ ; 3查询 1001课程没有成绩的学生学号、课程号

sql查询练习题2013

单表查询: 1、查询<学生信息表>,查询学生"张三"的全部基本信息 2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息 3、查询<学生信息表>,查询姓"张"学生的基本信息 4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息 5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。 6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。 7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息 8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息 9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息Select * 10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序 11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份 12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩 13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序 聚合查询 1、统计<学生信息表>,统计共有多少个学生 2、统计<学生信息表>,统计年龄大于20岁的学生有多少个 3、统计<学生信息表>,统计入学时间在1980年至1982年的学生人数 4、统计<学生选修信息表>,统计学号为"S001"的学生的平均成绩 5、统计<学生选修信息表>,统计学号为"S001"的学生的总成绩 6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩 7、统计<学生信息表>,查询所有学生中的最大年龄是多少 分组查询练习 1、统计<学生选修信息表>,统计每个课程的选修人数 2、统计<学生选修信息表>,统计每个同学的总成绩 3、统计<学生信息表>,统计每个班级中每种性别的学生人数,并按照班级排序 4、统计<学生选修信息表>,统计每门课程的平均成绩,并按照成绩降序排序 5、统计<学生选修信息表>,显示有两门以上课程不及格的学生的学号

sqlserver2005 【用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联】解决方案

'用户'sa' 登录失败。该用户与可信SQL Server 连接无关联 问题一、忘记了登录Microsoft SQL Server 2005 的sa的登录密码 解决方法:先用windows身份验证的方式登录进去,然后在…安全性?-…登录?-右键单击…sa?-…属性?,修改密码点击确定就可以了。 问题二、已成功与服务器建立连接,但是在登录过程中发生错取。(provider:共享内存提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233) 解决方法:打开…程序?-…所有程序?-…Microsoft SQL Server 2005 ?-…配置工具?-…SQL Server 配置管理器?,在弹出的窗体中,找到…SQL Server 2005 网络配置?,把…MSSQLSERVER的协议?下的“Named Pipes”和“TCP/IP”启动,然后重新启动Microsoft SQL Server 2005就可以了。 问题三、无法打开用户默认数据库。登录失败。用户…sa?登录失败。(Microsoft SQL Server, 错误:4064) 解决方法:先用windows身份验证的方式登录进去,然后在…安全性?-…登录?-右键单击…sa?-…属性?,将默认数据库设置成master,点击确定就可以了。 问题四、sql server 2005 错误18452 无法连接到服务器 服务器:消息18452,级别16,状态1 [Microsoft][ODBC SQL Server Driver][SQL Server]用户…sa?登陆失败。原因:未与信任SQL Server连接相关联 该错误产生的原因是由于SQL Server使用了"仅Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(例如sa )进行连接,解决方法如下 设置允许SQL Server身份登录(基本上这个很有用) 操作步骤: 1。在企业管理器中,展开"SQL Server组",鼠标右键点击SQL Server服务器的名称 2。选择"属性" 3。再选择"安全性"选项卡 4。在"身份验证"下,选择"SQL Server和Windows" 5。确定,并重新启动SQL Server服务 问题五、用户'sa' 登录失败。该用户与可信SQL Server 连接无关联。 解决方法:检查你的数据库的认证模式,windows 和混合模式,需要SA登陆的请选择混合模式。 检查计算机1433连接端口,1434数据端口是否打开 针对sql 2005 进入管理器中“安全”==》“用户”==》双击用户(弹出属性对话框)==》“状态”把状态改成enable,退出管理器重新登录(用户验证模式) 即:右键数据库属性对话框,选择“安全性”选项卡,服务器身份验证模式选择“SQL Server和Windows身份验证模式。然后重新配置sa的登陆信息即可。 SQL SERVER 2005使用sa 登录失败-提示该用户与可信SQL Server 连接无关联 错误提示: sa 登录失败,提示该用户与可信SQL Server 连接无关联 解决方法: 打开SQL Server Management Studio Express,

相关文档