数据库的组成: 
数据类文件:管理数据 
- 主数据文件有且唯一一个,文件后缀:.mdf
- 辅助数据文件可以有,可以没有,也可以有多个,后缀:.ndf
日志类文件:备份数据 
- 至少一个,后缀:.ldf
每个文件有五个属性: 
- name:逻辑名称,字符型数据- name='aaaa111'
标准化命名:数据库名字+\_+data(log)+序号(类型)
- filename:路径
标准化命名:盘符(例如d:\\)+逻辑名称+文件类型名如:filename='d:\\xslg\_dat1.mdf'
- size:文件初始大小- size=5mb,
- maxsize:最大大小- maxsize=20mb或- maxsize=unlimited(无限制)
- filegrowth:文件增长方式- filegrowth=5%或- filegrowth=2mb
创建sql server数据库 
create database 数据库名
on 
(name='数据文件名',
filename='数据文件路径',
size=初始文件大小,
maxsize=最大文件大小,
filegrowth=文件增长方式)
log on
(name='日志文件名',
filename='日志文件路径',
size=初始文件大小,
maxsize=最大文件大小,
filegrowth=文件增长方式)
go删除数据库 
drop database 数据库名
增加数据库文件 
- 增加数据库数据文件
alter database 数据库名
 add file
 (name='数据文件名',
filename='数据文件路径',
size=初始文件大小,
maxsize=最大文件大小,
filegrowth=文件增长方式)- 增加数据库日志文件
alter database xslg
 add log file
 (name='日志文件名',
filename='日志文件路径',
size=初始文件大小,
maxsize=最大文件大小,
filegrowth=文件增长方式)- 移除数据库文件(数据文件和日志文件移除方式相同)
#数据文件移除
alter database xslg
remove file xslg_dat3
#日志文件移除
alter database xslg
remove file xslg_log2例子: 
数据库叫 xslg假设他由3个文件组成 1个主数据  1个辅助文件 1个日志文件
create database xslg
on 
(name='xslg_dat1',
filename='d:\xslg_dat1.mdf',
size=5mb,
maxsize=50mb,
filegrowth=10%),
(name='xslg_dat2',
filename='d:\xslg_dat2.ndf',
size=5mb,
maxsize=50mb,
filegrowth=10%)
log on
(name='xslg_log1',
filename='d:\xslg_log1.ldf',
size=2mb,
maxsize=20mb,
filegrowth=1mb)
go- 增加用户组
alter database 数据库名
add filegroup 用户组名- 给用户组添加文件(需要先增加用户组)
alter database 数据库名
add file(
name='日志文件名',
filename='日志文件路径',
size=初始文件大小,
maxsize=最大文件大小,
filegrowth=文件增长方式
)
to filegroup 用户组名- 增加辅数据文件
alter database 数据库名
add file(
name='日志文件名',
filename='日志文件路径', //后缀为ndf
size=初始文件大小,
maxsize=最大文件大小,
filegrowth=文件增长方式)- 修改文件属性
alter database 数据库
modify file
(
name='日志文件名',
size=初始文件大小,
maxsize=最大文件大小,
filegrowth=文件增长方式)- 添加数据表
use stu;  //使用数据库stu
create table studeat  //创建数据表studeat
(
sno int primary key,  //表项sno,int类型,primary key定义为主键,
# 或者使用sno char(5) primary key check(sno>='20000' and sno<='30000'),  //对数据进行限制在20000到30000
sname char(16) unique,  //表项sname,char类型,unique 定义非空约束
ssex char(2) default('男'), //表项ssex,char类型,默认为'男'
sbirthday date not null,  //表项sbirthday,date类型,not null 定义为非空
sdept varchar(30) //表项sdept,varchar类型
);9.向表中添加数据
INSERT INTO studeat (sno, sname, ssex, sbirthday, sdept)
VALUES 
    (1, '艾瑞克', '男', '2000-05-15', '数学'),
    (2, '鲍勃', '女', '1999-09-20', '英语'),
    (3, '嘉里', '男', '2001-03-10', '法语'),
    (4, '德纳', '男', '2002-07-25', '德语');10.删除表中数据
DELETE FROM studeat
WHERE sno IN (1, 2, 3, 4);11.查询数据表
select * from studeat- 时间函数
getdate()
year() month() day()
datepart()
例如
select getdate() as 时间 //将获取时间标头命名为时间
SELECT YEAR(GETDATE())
SELECT DATEPART(HOUR, GETDATE())- 表达式查询全体学生姓名和年龄:
select name as 姓名,year(getdate())-year(sbirthday) as 年龄 from student- 查询计算机系全体学生的姓名
select name from student where sdept = '计算机系'- 查询考试成绩大于90的学生的信息
select * from SC where Grade > 90- 查询学分在2~3之间的所有信息
select * from course where credit between 2 and 3
或者
select * from course where credit >=2 and credit <=3- 查询学分不在2~3之间的所有信息
select * from course where credit not between 2 and 3
或者
select * from course where credit < 2 or credit > 3- 查询出生在1997年学生的全部信息
select * from student where sbirthday between '1997-01-01' and '1997-12-31'- 查询计算机系和机电系学生的信息
select * from student where sdept in ('计算机系','机电系')- 查询不在计算机和机电系的学生信息
select * from student where sdept not in ('计算机系','机电系')字符串匹配 
_ (下划线): 匹配任意一个字符
% (百分号): 匹配0到多个字符
[]: 匹配[]中的任意一个字符,如[abdg]表示匹配a、b、d、g中任意一个字母,[a-g]表示匹配a到g的字母中的任意一个字母
[^]: 不匹配[]中的任意一个字符,如[^abdg]表示不匹配a、b、d、g中任意一个字母,[^a-g]表示不匹配a到g的字母中的任意一个字母- 查询姓李的学生的信息
select * from student where name like '李%'- 查询姓名中第二个字是"冲"的学生信息
select * from student where name like '_冲%'- 查询学号最后不是2和3的学生信息
select * from student where sno not like '%[2,3]'- 查询还没有考试的学生的信息
select * from sc where Grade is NULL- 查询有备注的学生的信息
select * from student where Memo is not NULL- 使用逻辑运算符,查询机电系有备注的学生信息
select * from student where Memo is not NULL and sdept = '机电系'- 将"C01"号课程的成绩按升序排列
select cno,Grade from SC where Cno='C01' order by Grade- 将“060101”号学生的成绩按升序排列
select cno Grade from SC where sno='060101' order by Grade DESC聚合函数进行统计 
count(*): 统计表中元组的个数
count([distinct]<列名>):统计本列的列值个数,DISTINCT选择表示去掉列的重复值后再统计
sum(<列名>):计算列值的和值(必须是数值型列)
AVG(<列名>):计算列值的平均值(必须是数值型列)
MAX(<列名>):得到列值的最大值
MIN(<列名>):得到列值的最小值- 统计学生总人数
select count(*) as 学生总人数 from student- 统计学生"060101"的总成绩
select sum(Grade) as 总成绩 from sc where sno = '060101'- 统计学会说呢过“060101”的平均成绩
select avg(grade) as 平均成绩 from sc where sno='060101'- 统计课程"C01"的最高分数和最低分数
select MAX (Grade) as 最高分,MIN (Grade) as 最低分 from SC where cno='C01'