`
longgangbai
  • 浏览: 7251153 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ms sql 学习应用

阅读更多

学习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

分享到:
评论

相关推荐

    程序员的SQL金典完整版

    MS SQL Server、Oracle 和 DB2 中的差异进行了分析;详细讲解数据库对增、删、改、查等 SQL的支持并给出了相应的SQL 应用案例;透彻分析函数、子查询、表连接、不同DBMS中 的 SQL 语法差异、SQL 调优、NULL 值处理、...

    ( 程序员的SQL金典(完整).zip )

    《程序员的SQL金典》主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。《程序员的SQL金典》分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改...

    程序员的SQL金典

    《程序员的SQL金典》主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。《程序员的SQL金典》分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改...

    <程序员的SQL金典>

    《程序员的SQL金典》主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。《程序员的SQL金典》分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改...

    SQL SERVER数据库教程

    MS SQL SERVER是一款应用极佳的数据库系统,本教程非常利于大家学习!

    程序员的SQL金典.rar

     本书特色:主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析;详细讲解数据库对增、删、改、查等SQL的支持并给出了相应的SQL应用案例;透彻分析函数...

    《程序员的sql金典》

    本书主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。本书分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改、查等SQL的支持,给出了这些SQL...

    程序员的SQL金典高清扫描版

    本书主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。本书分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改、查等SQL的支持,给出了这些SQL...

    2009 年度十大 SQL Server 技巧文章

    通过对这些精华文章的再次回顾,希望可以帮助您梳理一下这一年以来的工作以及学习心得,对未来一年更进一步打下更坚实的基础。 使用bcp工具导入和导出批量数据 微软SQL Server中的批量复制程序(Bulk Copy ...

    SQL编程实用大全(精华版).part1

    本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQLServer的实现方式,但同时比较...

    学生成绩管理系统的设计与实现

    因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库...

    MSSQL 教学案例

    MSSQL2000教学课程实例 方便以后的应用练习和学习具体T-SQL语句的实际操作

    SQL编程实用大全(精华版).part3

    本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQLServer的实现方式,但同时比较...

    SQL编程实用大全(精华版).part2

    本书与众多的介绍某种软件的使用与操作方法的书籍不同,以SQL-89和SQL-92两种规范为基础,着重介绍SQL数据库各种产品的共同的基础知识和编程方法,在涉及具体软件时,重点介绍了MS-SQLServer的实现方式,但同时比较...

    21天学习SQL V1.0

    21天学习SQL V1.0.pdf 66 SQL 21 日自学通(V1.0) 翻译人笨猪 EMAIL wyhsillypig@163.com 2 日期/时间函数.........................................................................................................

    图书管理系统的设计与实现.doc

    结合图书馆公 共检索管理的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Power Builder 9.0应用程序设计,Power Builder 9.0数据库应用技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析...

    net学习笔记及其他代码应用

    28.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号 答:Select ID FROM table1 Where ...

    EasyJF官网论坛

    EasyJF官网论坛系统源码提供,一、www.easyjf.com全站源码是EasyJF开源团队站务组及核心成员共同开发及维护的系统,该全部源码不是一个开源项目,仅供...四、Ms_sql_database是MS SQL的数据库备份文件,还原即可。

    图书管理系统(jsp +struts+myeclipse)

    因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、.NET应用程序设计进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库需求分析,并由此设计了...

Global site tag (gtag.js) - Google Analytics