SQL Sever数据库脚本

数据库脚本代码

创建数据量

create  database dbtast--数据库名称

on primary

(

name = 'dbtest',                    --主数据文件逻辑名称

filename = 'D:\stuDB_data.mdf',    --主数据文件物理名称

size = 5mb,                        --主数据文件的初始大小

maxsize = 100mb,                    --主数据文件最大值

filegrowth = 15%                    --主数据文件的增长率

)

log on

(

name = 'dbtest_log',             

filename = 'D:\stuDB_log.ldf',

size = 2mb,

filegrowth = 1mb

)

删除数据库

drop database dbtest

在指定数据库添加数据表

use dbtest

create table ClassInfo

(

cId int not null primary key identity(1,1),

cTitle nvarchar(10)

)

主键:primary key

非空:not null

唯一:unique

默认:defalut()

检查:check()

外键:foreign key(当前表列名) references 表明(引用列名)

简单查询数据表

select * from ClassInfo              --表名

增加单个数据

insert into ClassInfo(cTitle) values('100')

insert into 表名(列名) values('值')

增加多个数据

insert into ClassInfo(cTitle)

values ('青龙'),('白虎'),('朱雀'),('玄武')

1.要求值的列名与值要位置对应

2.如果所有列都要插入值,则可省略列名按顺序插入

修改整列数据

update ClassInfo set cTitle = 'admin', cTitle = 'admin'

为指定行修改列数据

update ClassInfo set cTitle = 'admin'

where ClassInfo=1                      --修改第"1"行第cTitle列数据

删除数据表中的数据

delete (from) ClassInfo where cId = 1  --显示表中第1行的数据

清空数据表中所有行列数据(框架不变)

truncate table ClassInfo

别名

select UserName as name

from UserInof ui

设置别名之后使用必须使用别名

单行查询

select top 1 * from ClassInfo            --查询前1条数据

比例查询

select top 2 * from ClassInfo            --查询前2%的数据

对数据进行重新排序

select * from ClassInfo

order by cid desc,sId desc              --asc表示从小到大,desc表示从大到小

查询cid数据并消除重复行

select distinct cid from ClassInfo      --消除cid重复的行数只保留重复的第一行

where语句

select name from ClassInfo where Cid=1  --查询Cid=1的名字是什么

where返回的值为bool,查询到数据则为true查询不到则为false

比较运算符包括=,<,>,<=,>=,!=,<>(泛型)

区间查询语句

select * from ClassInfo

where Cid>=3 and Cid<=8

select * from ClassInfo

where Cid between 3 and 8                --显示Cid在3到8之间的数据

select * from ClassInfo

where Cid=1 or Cid=3

select * from ClassInfo

where Cid in(1,3)                        --显示Cid为1或者3的数据

逻辑运算符:and(与) or(或) not(非)

模糊查询

select * form ClassInfo

where Name like '1[5-9]%'                    --查询所有15...,16...,17....,18...,19...的数字

%为一个字符或者多个_为固定一个字符

[]表示一个约束,[1-5]为范围,[123]为123,[!123]不是123

select * from ClassInfo

where Cid is null                            --查询Cid数据等于null的数据

不是null则为is not null

优先级:小括号>not>比较运算符>逻辑运算符

连接查询(当需要的结果不在一张表的时候考虑使用)

select * form StudentInof

inner join ClassInfo on Student.Cid=ClassInfo.Cid

select * form StudentInof as si

inner join ClassInfo as ci on si.Cid=ci.Cid  --查询学生信息和班级信息

select * form StudentInof as si

left join ClassInfo as si on ci.Cid=si.Cid

select * form StudentInof as si

right join ClassInfo as si on ci.Cid=si.Cid   

内连接 inner join 两表中的完全匹配的数据

左外连接 left outer join 两表中完全匹配数据,左表中特有的数据

右外连接 right outer join 两表中完全匹配数据,右表中特有的数据

完全外连接 full outer join 两表中为安全匹配的数据,左表中特有的数据,右表中特有的数据

聚合函数

select COUNT(*) from ClassInfo            --查询当前表有多少行

select MAX(Cid) from ClassInfo            --查询当前表最大Cid值

select MIN(Cid) from ClassInfo            --查询当前表最小Cid值

AVG() 求平均值函数

select ClassInfo.*,AVG(Cid) over() from ClassInfo --将结果显示在每一行的后面

分组

select SGender,COUNT(*) from ClassInfo

group by sGender                          --性别分组 两组 0/1             

select sGender,Cid,COUNT(*) form StudentInof

group by sGender,Cid                      --每个班的男生是多少分组

分组之后进行筛选

select Cid,sGender,COUNT(*) from StudentInof

where Sid>2 group by Cid,

sGender having COUNT(*)>3                  --在分组之后进行筛选之后的信息

联合查询

union

union all

except      --差集

intersect  --交集

备份操作(向一个不存在的表中插入数据)

select * into test1 from ClassInfo        --备份表里面的数据和结构

select * into test2 from ClassInfo

where 1=2                                  --只备份结构不备份数据

(向一个存在的表中插入数据)

insert into test2(cTitle)

select cTitle from ClassInfo              --对主键列无法操作插入

类型转换

select CAST(89.000000 as decimal(4,1))

89.0

select CONVERT(decimal(4,1),89.000000,)

89.0

select CAST(1 as CHAR(1))+'1'

11(字符串)

你可能感兴趣的:(SQL Sever数据库脚本)