学习MS sql的实例
--必须选择master的实例数据库在判断数据库时
use master
检测数据库信息
go
if exists (select * from sysdatabases where name='stuDB')
drop database stuDB
go
---调用dos命令执行创建目录
exec xp_cmdshell 'mkdir E:\StuInfo'
go
----创建数据库
create database stuDB
on primary
(
name='stuDB',
filename='E:\StuInfo\stuDB_data.mdf',//创建数据库库的主文件
size=10,
maxsize=20,
filegrowth=10%
)
log on //创建数据库的日志文件的信息
(
name='stuDBLog',
filename='E:\StuInfo\stuDBLog_log.ldf',
size=20,
maxsize=40,
filegrowth=10%
)
go
----------使用前必须选择创建数据库执行批处理
use stuDB
go
---判断数据库中表是否存在的信息
if exists(select * from sysobjects where name='stuInfo')
drop table stuInfo
go
create table stuInfo
(
stuNo varchar(7) not null,
stuName varchar(32) not null,
stuSex varchar(4) not null,
stuSeat int not null identity (1,1),
stuAge int not null,
stuAddress varchar(50)
)
go
-------------添加各种约束的信息
alter table stuInfo
add constraint pk_stuNo primary key(stuNo) --主键约束
alter table stuInfo
add constraint ck_stuSex check( stuSex in ('男' ,'女')) --check约束
alter table stuInfo
add constraint df_stuAddress default('地址不详') for stuAddress --默认约束
alter table stuInfo
add constraint ck_stuAge check(stuAge between 15 and 40)
alter table stuInfo
add constraint uq_stuNo unique(stuNo) --唯一约束
alter table stuInfo
add constraint ck_stuNo check(stuNo like 's253__')
alter table stuInfo ---------删除约束信息
drop constraint ck_stuNo
go
if exists(select * from sysobjects where name='stuMarks')
drop table stuMarks
go
create table stuMarks
(
examNo varchar(7) not null,
stuNo varchar(7) not null,
writtenexam int not null,
labexam int not null
)
go
alter table stuMarks
add constraint pk_stuNoMarks primary key(stuNo)
alter table stuMarks --创建外键约束信息
add constraint fk_stuNo foreign key(stuNo)
references stuInfo(stuNo)
alter table stuMarks
add constraint df_writtenexam default(0) for writtenexam
alter table stuMarks
add constraint df_labexam default(0) for labexam
go
insert into stuInfo (stuName ,stuNo,stuSex,stuAge,stuAddress)
select '我的爱人','s25301','女',18,'河南南阳' union
select '晓丽','s25302','女',18,'河南南阳' union
select '小白','s25303','男',18,'河南南阳'
go
insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress)
values('小丽','s25304','女',16,'河南淅川')
insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress)
values('阿朵','s25305','女',16,default)
go
use studb
go
-----分配权限
grant select ,update,insert on stuinfo to xiaobai;
grant select on stuInf to jy;
grant create table to bailonggang;
go
select * from stuInfo;
select * from stuMarks;
go
----插入多行时使用
insert into stuMarks(examNo,stuNo,writtenexam,labexam)
select 's271811','s25301' ,80,20 union
select 's271813','s25304' ,88,70 union
select 's271816','s25302' ,48,50 union
select 's271815','s25303' ,45,30
go
---声明变量的时使用
declare @name varchar(34)
set @name='晓丽'
declare @seat int
select @seat=stuseat from stuInfo where stuname =@name
select * from stuinfo where (stuseat=@seat-1) or (stuseat=@seat+1)
go
---服务器变量的使用必须为@@
print '服务器的名称'+@@servername
select @@servername as '服务器的名称'
insert into stuInfo(stuNo,stuName,stuSex,stuAge,stuAddress)
values('梅超风','s25301','女',23,default)
print '当前的错误的号为:'+convert(varchar(5),@@error)
update stuInfo set stuAge=89 where stuname='小白'
print '当前的错误的号为:'+convert(varchar(5),@@error)
go
-----在mssql中 if判断的使用
declare @avag float
select @avag=avg(writtenexam) from stuMarks
if(@avag>70)
begin
print '本班的笔试成绩比较优秀:'+convert(varchar(5),@avag)
select top 3 * from stuMarks order by writtenexam desc
end
else
begin
print '本班的笔试成绩比较差:'+convert(varchar(5),@avag)
select top 3 * from stuMarks order by writtenexam asc
end
go
-----mssql 中判断的使用(无条件比较常用)
declare @n int
while(1=1)
begin
select @n=count(*) from stuMarks where writtenexam<60
if(@n>0)
begin
update stuMarks set writtenexam=writtenexam+2
end
else
break;
end
go
select * from stuMarks
go
----有条件的判断的使用
while (select avg(labexam)from stuMarks)<70
begin
update stuMarks set labexam=labexam+2
if(select max(labexam) from stuMarks )>80
break;
else
continue;
end
go
select * from stuMarks
go
---case end的经典使用的
declare @n int
while(1=1)
begin
select @n=count(*) from stuMarks where labexam<60
if(@n>0)
begin
update stuMarks set labexam=labexam+
case
when labexam between 80 and 89 then 1
when labexam between 70 and 79 then 2
when labexam between 60 and 69 then 3
else 5
end
end
else
break
end
go
select examno stuno ,writtenexam ,labexam ,
等级=case
when labexam>90 then 'A'
when labexam between 80 and 89 then 'B'
when labexam between 70 and 79 then 'C'
when labexam between 60 and 69 then 'D'
else 'E'
end
from stuMarks
go
declare @n int
while(1=1)
begin
select @n=count(*) from stuMarks where labexam <60
if(@n<0)
begin
update stuMarks set labexam=labexam+2
end
else
break;
end
update stumarks set labexam=100 where labexam>100
go
select writtenexam,stuno,labexam ,
等级=
case
when labexam> 90 then 'A'
when labexam between 80 and 90 then 'B'
when labexam between 70 and 80 then 'C'
when labexam between 60 and 70 then 'D'
else 'E'
end
from stuMarks
go
相关推荐
MS SQL Server、Oracle 和 DB2 中的差异进行了分析;详细讲解数据库对增、删、改、查等 SQL的支持并给出了相应的SQL 应用案例;透彻分析函数、子查询、表连接、不同DBMS中 的 SQL 语法差异、SQL 调优、NULL 值处理、...
《程序员的SQL金典》主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。《程序员的SQL金典》分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改...
《程序员的SQL金典》主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。《程序员的SQL金典》分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改...
《程序员的SQL金典》主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。《程序员的SQL金典》分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改...
MS SQL SERVER是一款应用极佳的数据库系统,本教程非常利于大家学习!
本书特色:主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析;详细讲解数据库对增、删、改、查等SQL的支持并给出了相应的SQL应用案例;透彻分析函数...
本书主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。本书分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改、查等SQL的支持,给出了这些SQL...
本书主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。本书分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改、查等SQL的支持,给出了这些SQL...
通过对这些精华文章的再次回顾,希望可以帮助您梳理一下这一年以来的工作以及学习心得,对未来一年更进一步打下更坚实的基础。 使用bcp工具导入和导出批量数据 微软SQL Server中的批量复制程序(Bulk Copy ...
本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQLServer的实现方式,但同时比较...
因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库...
MSSQL2000教学课程实例 方便以后的应用练习和学习具体T-SQL语句的实际操作
本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQLServer的实现方式,但同时比较...
本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQLServer的实现方式,但同时比较...
21天学习SQL V1.0.pdf 66 SQL 21 日自学通(V1.0) 翻译人笨猪 EMAIL wyhsillypig@163.com 2 日期/时间函数.........................................................................................................
结合图书馆公 共检索管理的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Power Builder 9.0应用程序设计,Power Builder 9.0数据库应用技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析...
28.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号 答:Select ID FROM table1 Where ...
EasyJF官网论坛系统源码提供,一、www.easyjf.com全站源码是EasyJF开源团队站务组及核心成员共同开发及维护的系统,该全部源码不是一个开源项目,仅供...四、Ms_sql_database是MS SQL的数据库备份文件,还原即可。
因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、.NET应用程序设计进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库需求分析,并由此设计了...