
SQL Server
文章平均质量分 51
绝地反击T
世界那么大,我想去看看。
展开
-
面试题:用一条sql语句查询出“每门”课程都大于80分的学生姓名
分析:要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,可能所有课程都大于80分,可能有些课程大于80分,另外一些课程少于80分,也可能所有课程都小于80分,那么我们要查找出所有大于80分的课程的学生姓名,我们可以反向思考,找出课程小于80分(可以找出有一些课程小于80分,所有课程小于80分的学生)的学生姓名再排除这些学生剩余的就是所有课程都大于80分的学生姓名了,1.用一条SQ原创 2015-07-30 00:22:50 · 53319 阅读 · 6 评论 -
一道SQL语句面试题,关于group by的
一道SQL语句面试题,关于group by表内容:2015-05-09 胜2015-05-09 胜2015-05-09 负2015-05-09 负2015-05-10 胜2015-05-10 负2015-05-10 负如果要生成下列结果, 该如何写sql语句? 胜 负2015-05-09 2 22015-05-10 1原创 2015-07-29 19:31:51 · 4800 阅读 · 1 评论 -
sqlserver数据库和MySQL数据库的连接的一个JUnit测试小记
JDBC四大配置参数(记下来的)1、驱动类名:Mysql:com.mysql.jdbc.Dirver; Sqlserver:com.microsoft.sqlserver.jdbc.SQLServerDriver2、URL:Mysql数据库:jdbc:mysql://localhost:3306/数据库名 Sqlse原创 2015-04-23 19:42:02 · 1387 阅读 · 0 评论 -
SqlServer中datediff、datename、datepart。。。
print datediff(year,'1992-11-28',getdate())--返回datetimeprint datename(month,'1992-11-28') --返回varcharprint datepart(month,'1992-11-28') --返回integerprint day(getdate()) --返回integerp原创 2014-12-18 14:59:53 · 822 阅读 · 0 评论 -
查询课程编号以'c05'开头,被3名及以上学生选修且期末成绩的平均分高于75分的课程号、选修人数和期末成绩平均分,并按平均分降序排序
--查询课程编号以'c05'开头,被3名及以上学生选修--且期末成绩的平均分高于75分的课程号、选修人数--和期末成绩平均分,并按平均分降序排序use teachinggoselect courseno,count(studentno)as '选修人数',avg(final) as '期末平均分'from scorewhere courseno like 'c05%' and fi原创 2014-12-17 09:50:45 · 5878 阅读 · 1 评论 -
查询每名学生的学号、选修课程数目、总成绩、并将查询结果存放到生成的’学生选课统计表‘中
--查询每名学生的学号、选修课程数目、总成绩、并将查询结果存放到生成的’学生选课统计表‘中use teachinggoif exists (select * from sys.objects where name='学生选课统计表')drop table 学生选课统计表select studentno,COUNT(*) as '选修课程数目',sum(final) as '总成绩' i原创 2014-12-15 21:19:21 · 18634 阅读 · 0 评论 -
SqlServer: datepart ,dateadd,datediff,dateName函数
SELECT DATEDIFF(YEAR,'1992-11-28',GETDATE()) --求岁数,其中YEAR可以换成DAY MONTHSELECT DATEPART(MONTH,GETDATE()) --返回代表指定日期的指定日期部分的整数。如12SELECT DATENAME(WEEKDAY原创 2014-12-15 20:29:34 · 1320 阅读 · 0 评论 -
编写程序,采用辗转相除法求解两个正整数的最大公约数
--编写程序,采用辗转相除法求解两个正整数的最大公约数DECLARE @a int,@b intSELECT @a=12,@b=21DECLARE @temp intprint cast(@a as varchar(5))+'和'+cast(@b as varchar(5))+'的最大公约数是'if @a<@b --或者是select @temp=@a,@a=@b,@b=@te原创 2014-12-15 19:48:30 · 11834 阅读 · 0 评论 -
编写程序,输出在1~3000之间能被17整除的最大数值
--编写程序,输出在1~3000之间能被17整除的最大数值DECLARE @max int,@i intselect @i=3000,@max=0while @i>=1begin if @i%17=0 --注意while和if等循环都没有括号()把循环条件包围起来 begin set @max=@i --注意赋值语句不是@max=@i,而是set @max=@i,前面必须加原创 2014-12-14 20:31:43 · 6293 阅读 · 0 评论 -
SQL编程:判断某个年份是否为闰年
declare @year int--set @year =2014set @year=year(GETDATE());--获取系统当前日期再取出其中的年份if @year%4=0 and @year%100<>0 or @year%400=0 print cast (@year as char(4))+'是闰年' --输出时必须把int型的year变为字符类型才能和后面的字符相连接原创 2014-12-14 19:54:09 · 13956 阅读 · 1 评论 -
SQL编程:判断一个字符是数字字符、字母字符还是其他字符
--=============================================--通过if-else语句求一个字符是什么字符declare @ch charset @ch='2'if UPPER(@ch)>='A' and UPPER(@ch)<='Z' print @ch+'是字母字符'else if @ch>='0' and @ch<='9' print @ch+原创 2014-12-14 19:36:19 · 6626 阅读 · 0 评论 -
编写程序,用if else语句根据姓名查询teaching数据库中学生的基本信息和选课信息,学生姓名通过变量输入。不存在则输出提示信息
--编写程序,根据姓名查询teaching数据库中学生的基本信息和选课信息,学生姓名--通过变量输入。对于不存在的学生姓名输入值,打印提示信息。use teachinggodeclare @sname nchar(8)set @sname='许海冰'if exists (select * from student where sname=@sname) select student.原创 2014-12-14 13:30:08 · 4943 阅读 · 0 评论 -
编写程序,查询所有学生选修课程的期末成绩和对应等级,如学生未选修任何课程 --则输出提示信息。用case选择结果
--)编写程序,查询所有学生选修课程的期末成绩和对应等级,如学生未选修任何课程--则输出提示信息。--多分支选择结构可通过CASE语句实现。在实现多表连接时,需要查询未选修任何课--程的学生信息,即需要查询在student表中存在而在score表中不存在的学生记录。外连接--LEFT JOIN可实现此功能。use teachinggoselect student.studentn原创 2014-12-14 13:28:55 · 5302 阅读 · 0 评论 -
创建数据库、数据表、索引时先判断再创建
创建数据库,如果存在则先删除再创建USE masterGOIF EXISTS( SELECT name FROM sys.databases WHERE name = N'teaching')DROP DATABASE teaching创建数据表,如果存在则先删除再创建IF EXISTS ( SELECT * FROM sys.objects原创 2014-12-13 16:03:41 · 1430 阅读 · 0 评论 -
转:SQL SERVER 2008安装的时候提示“该实例名称已在使用”解决办法。
问题描述:1、我给自己的服务器安装SQL SERVER2008很正常,一切顺利。2、朋友之前给自己装了一个Visual Studio2010,附带就安装了一个SQL SERVER 2008EXPRESS版本。昨天他想把自己的08EXPRESS版升级成Developer版,于是从我这里把SQLFULL_CHS.iso安装镜像拷走准备安装,可是装到一半他说不行啊,还是改天你来帮我装吧,这些选项转载 2014-12-06 09:59:24 · 27929 阅读 · 2 评论 -
各种数据库的连接方式汇总
MySQL: String Driver="com.mysql.jdbc.Driver"; //驱动程序 String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名 String Username="username"; //用户名 String P转载 2014-12-05 09:51:43 · 626 阅读 · 0 评论 -
sql server After触发器 instead of触发器
DML触发器分为 After触发器和instead of 触发器SQL触发器中deleted表与inserted表详解在触发器中,deleted表与inserted表是两个很特殊的表。我们 知道SQL中,触发器是一个特殊的存储过程,主要用来保持数据的完整性,避免异常产生。而deleted表和inserted表就是为了存储修改和删除之 后的数据,并且这两个表存储在内存中,从而加快了存取速原创 2014-12-03 22:51:20 · 2267 阅读 · 0 评论 -
SqlServer:索引是什么,以及为什么使用索引
为什么使用索引原创 2014-11-29 17:29:27 · 1497 阅读 · 0 评论 -
创建数据库
USE masterGOIF EXISTS( SELECT name FROM sys.databases WHERE name = N'teaching')DROP DATABASE teachingCREATE DATABASE teaching ON PRIMARY ( NAME = N'teaching', FILENAME = N'D:\teach原创 2014-11-29 16:46:54 · 781 阅读 · 0 评论 -
在SqlServer中如果存在数据库,则删除再建,如果存在表则删除再建.
--注意:使用该sql语句生成数据库和表时,必须先在E盘下创建名为teaching的文件夹; USE master GO if exists(select * from dbo.sysdatabases where name=N'teaching') drop database teachingGO CREATE DATABASE teachingON原创 2014-11-29 16:28:06 · 13516 阅读 · 0 评论 -
SqlServer书上:使用游标输出学生姓名、选修课程名称和期末考试成绩
--使用游标输出学生姓名、选修课程名称和期末考试成绩use teachinggodeclare @sname nchar(8),@cname nchar(10),@final numeric(6,2)--定义变量declare sc_cursor cursor --定义游标forselect sname,cname,finalfrom score join student on(sc原创 2014-11-25 22:17:25 · 12736 阅读 · 5 评论 -
游标的简单例子
游标的类型:1、静态游标(不检测数据行的变化)2、动态游标(反映所有数据行的改变)3、仅向前游标(不支持滚动)4、键集游标(能反映修改,但不能准确反映插入、删除)游标使用顺序:1、定义游标2、打开游标3、使用游标4、关闭游标5、释放游标原创 2014-11-22 19:19:00 · 2180 阅读 · 1 评论 -
T-SQL编写程序,将十进制数值转换为二进制字符串后输出
T-SQL编写程序,将十进制数值转换为二进制字符串后输出原创 2014-11-08 17:47:57 · 4168 阅读 · 0 评论 -
SqlServer2008:日期与时间函数的使用举例
print getdate()--获取当前年月日print getutcdate()--获取当前年月日--获取当前的年(3中获取方式)print year(getdate())--2014print datepart(year,getdate())--2014print datepart(yy,getdate())--2014--获取当前的月(3中获取方式)print month原创 2014-10-27 21:07:05 · 2847 阅读 · 0 评论 -
Transact-SQL编程
DECLARE @num int--定义变量SELET @num = avg(分数)--赋值给变量@numFROM 成绩信息where 考试编号 = '0202' and '课程编号' = '2'select @num--打印输出if @num>60 begin--语句块用begin end格式,下面是嵌套的if--else语句 if @num原创 2014-10-25 00:00:20 · 857 阅读 · 0 评论 -
SQL Server中变量的声明和使用方法
声明局部变量语法:DECLARE@variable_name DataType其中variable_name为局部变量的名称,DataType为数据类型。给局部变量赋值有两种方法:1、SET@variable_name=value2、SELECT@variable_name=value两者的区别:SET赋值语句一般用于赋给变量一个指定的常量,SELECT赋值语句一般用于从表原创 2014-10-24 09:24:24 · 6501 阅读 · 0 评论 -
char、nchar、varchar、nvarchar的区别
char [ ( n ) ] 固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节nchar [ ( n ) ]n 个字符的固定长度的 Unicode 字符数据。n 值必须在 1 到 4,000 之间(含)。存储大小为两倍 n 字节varchar [ ( n | max ) ] 可变长度,非 Unicode 字符数据转载 2014-10-24 08:59:19 · 726 阅读 · 0 评论 -
SQL Server Browser是什么
SQL Server 浏览器程序以服务的形式在服务器上运行。SQL Server 浏览器侦听对 Microsoft SQL Server 资源的传入请求,并提供计算机上安装的 SQL Server 实例的相关信息。SQL Server 浏览器可用于执行下列三种操作:浏览可用服务器连接到正确的服务器实例连接到专用管理员连接 (DAC) 端点SQL Server Browser服务主要原创 2014-10-23 17:52:34 · 9678 阅读 · 0 评论