use master
go
--创建数据库
create database StudentManageDB
on primary
(
name='StudentManageDB_sata',--数据库文件逻辑名
filename='D:DBStudentManageDB_data.mdf',--数据库物理文件名
size=10MB,--数据库文件初始大小
filegrowth=5MB --数据文件增长量
),
(
name='StudentManageDB_sata1',--数据库文件逻辑名
filename='D:DBStudentManageDB_data1.ndf',--数据库物理文件名
size=10MB,--数据库文件初始大小
filegrowth=5MB --数据文件增长量
)
log on
(
name='StudentManageDB_log',
filename='D:DBStudentManageDB_log.Idf',
size=5MB,
filegrowth=2MB
),
(
name='StudentManageDB_log1',
filename='D:DBStudentManageDB_log1.Idf',
size=5MB,
filegrowth=2MB
)
go

判断当前数据库是否存在
if exists(select*from sysdatabases where name='StudentManageDB')
drop database StudentManageDB
go

整数类型
int
整数类型
numeric(18,0)
日期类型
datetime smalldatetime 精确到分钟
货币类型
money
位类型
0,1 true/false

插入实体类语法
insert [into] <表名>[列名]value<值列表>

基本查询语法
select<列名>from<源表名>[where<查询条件>]
部分字段 select StudentId,StudentName from Student where ID => 12
select*from Students

///更新实体语法
update<表名>set<列名>
update Student set Gender='男',Age=25 where StudentID=1000
select*from Students

///删除数据表中的数据语法
delete from <表名>[where<删除条件>]
truncate table<表名> //不能有引用存在,删除标识列后重新排序

///AS或= 更换标签名
select ID as 类,Name as 名字,添加事件 = AddTime
from Role

///查询空列
select * from Role where Name is null

///使用常量列
select StudentName,Gender,所在学校='野鸡大学' from where Render ='男' and Age <> 22

限制固定行数
select top 5 ID,Menu from Role
百分比 percent

排序 DESC降序 ACS升序
group by

查询inner join...on... 左外连接 left outer join...on... 右外连接right outher join...on...
select Menu.ID,Menu.Name,Button.Name
from Menu
left outer join Button on Menu.ID=Button.MenuID

模糊查询 like '天津%' '%小%'
between and 表示范围 '1998-12-28'
in可枚举

列总数求和 SUN() count() MAX()最大值 MIN()最小值

where模糊查询 => group by分组统计 =>分组结果筛选

select StudentClass,ClassName,人数=Conut(*)
from Student
inner Join StudentClass on Students.classId = StudentClass.ClassId
group by ClassName

对分组结果进行筛选
having AVG(CSharp)>=70 and AVG(SQLServerDB>=70)

对于重复数据的查询方法
-- 已知字段重复查询
select StudentId from StudentList group by StudentId having COUNT(*)>1
-- 查询重复记录
select*from StudentList
where StudentId in(select StudentId from StudentList group by StudentId having COUNT(*)>1)
order by StudentId

第二范式,第三范式