zoukankan      html  css  js  c++  java
  • SQL server基本语法

    此处源于一个基本的SQL Server试题,基本上涵盖了SQL Server的全部基本语法,粘贴在此处,权当分享
     
    --1、  创建TestDB数据库
    create database TestDB;
    --2、  查看TestDB数据库是否存在
    IF EXISTS (SELECT 1 FROM SYSDATABASES WHERE NAME='TestDB') SELECT 1 ELSE SELECT 0;
    --3、  在TestDB数据库创建stuInfo学生表,字段:stuSeat座位号,stuName姓名,stuNo学号,stuAge年龄,stuID身价证号码,stuAddress住址
    --要求座位号是从100开始的自动编号,姓名不能为空,学号不能重复,年龄只能在0-100,stuAddress默认值为“未填写”
    if EXISTS (SELECT * FROM sysobjects WHERE NAME='stuInfo') drop table stuInfo ELSE print 'goon';
    create table stuInfo(
    stuSeat int  IDENTITY(100,1),
    stuName varchar(100) not null,
    stuNo int unique,
    stuAge int check(stuAge between 0 and 100) ,
    stuID varchar(100),
    stuAddress varchar(100) default '未填写'               -- 不能限制not null ,否则会报二进制错误
    );
    select * from stuInfo;
    --4、  给学生表增加stuSex性别字段
    alter table stuInfo add  stuSex smallint not null ;
    --5、  修改学生表的姓名列,新列名为Name
    exec sp_rename 'stuInfo.stuName','Name','column';
    --6、  将学生表的自动编号列修改为主键
    ALTER TABLE stuInfo  ADD CONSTRAINT PK_stuSeat PRIMARY KEY (stuSeat);
    --7、  向学生表中写入数据
    insert into stuInfo(Name,stuNo,stuAge,stuID,stuSex) values ('tangxin',1,18,'12365868',1);
    --8、  通过学生表的学号修改学生表的数据
    update stuInfo set stuAge=17 where stuID='12365868';
    --9、  通过自动编号删除学生表的数据
    delete from stuInfo where stuSeat=100;
    --10、 删除学生表所有的数据
    truncate table stuInfo;
    --11、 查询学生表是否存在,如果存在就删除
    if EXISTS (SELECT * FROM sysobjects WHERE NAME='stuInfo') drop table stuInfo ELSE print 'not EXISTS';
    --12、 删除学生表的年龄列
    alter table stuInfo drop Constraint CK__stuInfo__stuAge__2EDAF651;  -- 由于年龄列存在约束,要先删除约束
    alter table stuInfo drop column  stuAge ;
    --13、 删除主键约束
    exec sp_helpconstraint @objname=stuInfo;  -- 查看所有约束
    alter table stuInfo drop Constraint PK_stuSeat;
    --14、 删除TestDB数据库
    drop database TestDB;
    --15、 写脚本打印9*9乘法表
    declare @x int
    set @x=1
    declare @y int
    declare @c varchar(8000)
    while(@x<=9)
    begin
     select @y=1,@c=''
     while(@y<=@x)
     begin
       select @c=@c+cast(@y as varchar)+'*'+cast(@x as varchar)+'='+cast(@x*@y as varchar)+' '
       set @y=@y+1
     end
     print @c+char(10)
     set @x=@x+1
    end
  • 相关阅读:
    深入理解Java并发之synchronized实现原理
    Untracked Files Prevent Checkout move or commit them before checkout
    java代码在开始事务后,先做了一个查询,再insert,此时会报: java.sql.SQLException: could not retrieve transation read-only status server
    Java 实例
    java队列——queue详细分析
    Jquery 获取table当前行内容
    Java list 分页(多种方式)
    获取当天的开始时间、结束时间等等的一个工具类
    java list按照元素对象的指定多个字段属性进行排序
    [译] OpenStack Kilo 版本中 Neutron 的新变化
  • 原文地址:https://www.cnblogs.com/miranda-tang/p/8335812.html
Copyright © 2011-2022 走看看