学习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 学习笔记知识点汇总 #### 数据库技术简介 **基本概念** - **数据库**: 计算机存储器中用于存储数据的仓库,是数据管理的基础。 - **数据库系统**: 包括数据库、数据库管理系统(DBMS)、应用...
通过上述的`Transact-SQL CHN.chi`和`Transact-SQL CHN.chm`文档,用户可以详细学习到T-SQL的语法、用法及示例,从而更好地在MS SQL Server环境中进行数据管理和应用开发。这些文档是MS SQL Server用户的重要参考...
《jForum与MS SQLServer整合学习笔记》 jForum是一款基于Java的开源论坛系统,它以其高度可定制性、灵活性和强大的功能深受开发者喜爱。在本文中,我们将深入探讨如何将jForum与Microsoft SQL Server(简称MS SQL...
### MS SQL 基础语句教程 #### 第一天:SQL简介 - **SQL简史**:SQL(Structured Query Language)是一种用于管理关系型数据库...通过对这些内容的学习,读者将能够有效地使用MS SQL Server 2005进行各种数据库操作。
标题中的“只能还原MS SQL数据库”表明这是一个专为恢复Microsoft SQL Server数据库而设计的应用程序。在IT领域,数据库是存储和管理数据的核心组件,而SQL Server是微软公司提供的一种关系型数据库管理系统,广泛...
本主题将聚焦于SELECT语句在MS SQL中的应用,这是一种用于从数据库中检索数据的关键命令。 一、SELECT语句基础 SELECT语句是最基本的查询工具,它允许用户从一个或多个表中选择特定的数据行和列。其基本语法如下:...
通过学习《MS SQL Server 7 参考手册 - 编程语言》,开发者能够熟练掌握SQL Server 7.0中的编程和管理技巧,从而更有效地构建和维护数据库应用。虽然SQL Server 7.0现在已被更新的版本所取代,但其基本原理和概念在...
在十分钟内掌握MS SQL Server 2005可能听起来有些挑战,但别担心,我们会逐步讲解这个强大的数据库管理系统的关键概念和操作。SQL Server 2005是Microsoft公司推出的一款企业级数据库解决方案,广泛应用于数据存储、...
在信息技术领域,数据库管理系统(DBMS)是不可或缺的一部分,而ms SQL与SQL Anywhere则是两种广泛应用的关系型数据库管理系统。本篇文章将深入探讨一个用于管理这两种数据库的实用工具源码,帮助读者理解其工作原理...
MS SQL Server是一款由微软公司开发的关系型数据库管理系统,广泛应用于企业级数据存储、管理和分析。在MS SQL Server培训中,通常会涵盖以下几个核心知识点: 1. **SQL基础**:SQL(Structured Query Language)是...
Oracle和MS SQL Server作为两大主流的关系型数据库管理系统,在设计理念、系统架构、功能特性和应用场景上有着显著的差异。Oracle数据库系统由Oracle Corporation开发,支持复杂事务处理和高并发操作,而MS SQL ...
【标题】MS SQL Server日志清理...通过这个压缩包,我们可以学习到如何利用Delphi编程语言创建与MS SQL Server交互的应用程序,以及如何实现数据库日志的清理,这对于数据库管理和开发人员来说是一份宝贵的学习资料。
【MS+SQL全系列教程】是一套全面介绍Microsoft SQL Server的教育资源,专为初学者设计,旨在通过12个章节的深入讲解,帮助用户从零基础掌握SQL Server的基础知识和高级应用。本教程覆盖了从安装配置到实际操作的全...
ASP是一种服务器端脚本环境,主要用于创建动态网页和Web应用程序,而MS SQL则是微软公司提供的关系型数据库管理系统,用于存储、管理和检索数据。 **ASP技术详解:** ASP是微软在1996年推出的Web开发技术,它允许...
在IT行业中,MS SQL Server是微软公司开发的关系型数据库管理系统,广泛应用于企业级数据存储、管理和分析。本篇文章将深入探讨一些MS SQL Server的关键数据库技巧,帮助你优化工作流程,提高效率。 一、查询优化 ...
JetSQL是一款专为MS Jet SQL设计的脚本解释器,它允许用户通过SQL语句来操作和管理基于Microsoft Jet数据库引擎的数据。JetSQL为开发者和数据库管理员提供了方便的工具,可以执行复杂的数据库操作,比如查询、插入、...
MS SQL Server语句追踪器是数据库管理员和开发者用于优化数据库性能、排查问题的重要工具。它允许用户实时监控SQL Server数据库的活动,记录并分析执行的SQL语句和存储过程,以便找出性能瓶颈或异常行为。在本文中,...
MS SQL Server是微软提供的一个强大关系型数据库管理系统,广泛应用于企业级应用。Excel SQL是指在Excel数据操作中使用SQL语言,这可能是通过VBA(Visual Basic for Applications)或者其他插件实现的。而Delphi是一...
通过实际案例和详尽的代码示例,读者可以学习到如何利用SQL Server的强大功能来优化数据查询和事务处理,提高数据库的响应速度和安全性。 ### 数据连接开发 在数据库开发中,数据连接是必不可少的一部分。本书详细...