数据库
首页 > 数据库> > SQL server基本语法

SQL server基本语法

作者:互联网

小星星学数据

 

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

作者:Miranda.Tang
出处:http://www.cnblogs.com/miranda-tang/
本作品采用署名-非商业性使用 3.0协议进行许可。欢迎转载,演绎,但是必须保留本文的署名Miranda.Tang,且不能用于商业目的。

卡布卡布TEL 发布了12 篇原创文章 · 获赞 5 · 访问量 1678 私信 关注

标签:varchar,stuAge,server,语法,TestDB,stuInfo,SQL,table,100
来源: https://blog.csdn.net/weixin_44606231/article/details/103976834