所有代码都是在sql server 2012中的查询窗口执行,若窗口中有很多代码段,可以通过用鼠标选中某一块数据单独执行这块代码,这比通过注释的方式来执行代码更方便快捷得多。
use master go create database SchoolDB on ( name = SchoolDB_dat, filename = "d:\SchoolDB.mdf", size = 10, maxsize = 50, filegrowth = 5 ) log on ( name = SchoolDB_log, filename = "d:\SchoolDB.ldf", size = 5mb, maxsize = 25mb, filegrowth = 5mb )
--修改数据库容量 use master alter database SchoolDB modify file ( name =SchoolDB_dat, size=30mb )
--修改数据库名字 use master go alter database SchoolDB modify name=SchoolDBBB go
--删除数据库
use master
go
drop database SchoolDBBB
go
--显示数据库信息 use ReportServer go select * from [dbo].[Batch] go
--显示数据库大小
exec sp_spaceused
go
--学生表 create table Student ( StuID varchar(10) primary key, --数据表主键 StuName nvarchar(10) not null unique, --名称,不能为空 StuBirth datetime, --生日 StuAge int, --年龄 StuSex nvarchar(10) not null default('男') --性别 ) go --教师表 create table Teacher ( TecID varchar(10) primary key, tecName nvarchar(10) not null ) go --课程表 create table Course ( CouID varchar(10) primary key, CouName nvarchar(10), TecID varchar(10) foreign key(TecID) references Teacher(TecID) --外键 ) go --成绩表 create table Score ( StuID varchar(10) foreign key(StuID) references Student(StuID), CouID varchar(10) foreign key(CouID) references Course(CouID), Score decimal(18, 1) ) go
--添加字段 alter table Student add column_b varchar(20) null, column_c int null --删除字段 alter table Student drop column column_b,column_c
--删除主键 alter table Student drop constraint [pk_student_stu] --添加主键 alter table Student add constraint pk_student_stu primary key(StuID) --添加外键 alter table Course add constraint fk_course_tecid foreign key(TecID) references Teacher(TecID) --删除外键 alter table Course drop constraint [FK__Course__TecID__164452B1]
--常量 select 1 select 'zk' select '2016-2-4' --全局变量 select @@VERSION as 'sql server 版本' --局部变量 declare @count int select @count = 5
--通配符 % select * from Student where StuSex like 'Fe%' select * from Student --通配符_ select * from Student where StuName like 'Joh_' select * from Student --通配符[] select * from Student where StuName like 'e[do]%' select * from Student --通配符^ ! select * from Student where StuSex like '[^md]%' select * from Student
--赋值运算符 declare @x int, @y int select @x = 1, @y = 2 select @x + @y --算术运算符 select 1+2+5-4 --逻辑运算符 select * from Student where StuAge>8 or StuSex='Femal' --比较运算符 select * from Student where StuAge > 8 --运算符优先级 select 1+2 select 1+ 2 * 3 select (1 + 2) * 3
单行:--zzzzzzzzzzzzzzzzzzzzzzzzzzzzz
多行:/*zzzzzzzzzzzzzzzzzzzzzzz*/
create table demo ( id int, name varchar(20) ) go alter table demo add age int alter table demo drop column age alter table demo alter column name varchar(15) drop table demo
--插入数据 insert into Student values('3', N'李四', '1989-01-01',25, N'男') --删除数据 delete from Student where STUID = '3' --查看数据 select * from Student select * from Student where StuID in(2,3) select * from Student where StuID > 1 and StuID < 3 select * from Student where StuID like '1%' --改变数据 update Student set Stusex = N'女' where STUID = '2' update Student set Stusex = N'女' where STUID <> '2' update Student set Stusex = N'女' where not STUID <> '2'
--用户权限 grant update,delete,select on Student to guest with grant option deny update on Student to guest cascade revoke delete on Course to guest cascade
--声明语句 declare @userid varchar(20) declare @pwd varchar(20) set @userid = 'admin' set @pwd = '123' select '用户名' + @userid + '密码' + @pwd --输出 declare @userid varchar(20) declare @pwd varchar(20) select @userid = 'admin', @pwd='123' print @userid + ',' + @pwd --begin end declare @count int select @count = 0 while @count < 10 begin print 'count' + ltrim(@count) select @count = @count + 1 end print 'loop over count=' +ltrim(@count) --if else declare @age = int select @age = 40 if @age < 30 print 'z' else print 'k' --case when select *, case when StuID = '1' then '班长' when StuID = '2' then '学习委员' else '无' end as '职位' from Student --goto begin goto zktest select * from Student zktest: print 'zjjjjjj' end --waitfor 延迟执行 declare @name varchar(50) set @name = 'admin' begin waitfor delay '00:00:03' print @name end --return create FUNCTION Func(@id char(8)) returns table as return (select * from Student where StuID = @id) select * from Func('1')
/* 字符串函数 */ select ASCII('s'), ascii('z'), ascii('k') select char(99), char(87) select * from Student where left(stuname, 1) = 'z' select * from Student where right(stuname, 1) = 'k' select CHARINDEX('z', stuname, 1) from Student where stuid = '2' select len(stuname) from student where stuid = 2 /* 文本和图像函数 */ create table table1 ( c1 int, c2 text ) insert table1 values('1', 'this is text') select c1, TEXTPTR(c2) from table1 select c1, TEXTVALID('table1.c2', textptr(c2)) from table1 /* 日期函数 */ select GETDATE() select day(getdate()) select month(getdate()) select year(getdate()) select datepart(quarter, getdate()) select datepart(month, getdate()) select datepart(year, getdate()) select datepart(day, getdate()) select datepart(DAYOFYEAR, getdate()) select datepart(WEEKDAY, getdate()) select datepart(WEEKDAY, '2016-2-4') select datepart(WEEK, getdate()) --1900 select datepart(year, 0), datepart(month, 0), datepart(day, 0) select datename(quarter, getdate()) select datename(month, getdate()) select datename(year, getdate()) select datename(day, getdate()) select datename(DAYOFYEAR, getdate()) select datename(WEEKDAY, getdate()) select datename(WEEKDAY, '2016-2-4') select datename(WEEK, getdate()) select convert(varchar(10), getdate(), 120) select convert(varchar(10), getdate(), 112) select cast(getdate() as varchar(10)) select cast(1 as char(1)) + '2345' select dateadd(dd, -1, getdate()) select dateadd(mm, -1, getdate()) select dateadd(yy, -1, getdate()) select dateadd(qq, -1, getdate()) select dateadd(hh, -1, getdate())
--字段长度 select col_length('student','stuid') --表对应的ID select object_id('student') --表第一个字段名称 select col_name(object_id('student'),1) --数据库编号 select db_id('student') --数据库名称 select db_name(db_id('student')) --数据库标识符 select host_id() --计算机名字 select host_name() --使用者 select user_name() select sum(stuage) as 年龄之和 from student select avg(stuage) as 平均年纪 from student