数据库视频(一)

一、CREATE DATABASE语句
CREATE DATABASE:关键词
ON:数据文件
FIENAME:物理地址
SIZE:初始大小
FILEGROWTH:增量大小和方式
FILEGROUP:所属文件组
LOG ON:日志文件

二、图形化管理数据库
1.查看数据库:select DATABASEPROPERTYEX('学生','Version')
2.修改数据库:ALTER DATABASE 学生 MODIFY NAME=学生管理系统
3.删除数据库:DROP DATABASE学生管理系统
4.分离和附加数据库
5.收缩数据库:任务-收缩-数据库(或文件)
6.数据库快照
   1.创建语法格式
    creace dacabase数据库快照名称
    on
   (name)
    as 
   2.用数据库快照还原数据库
   restore database数据库名称
   from database_snapshot="数据库快照名     称"
7.复制数据库:传输方法为两种,一种使用分离和附加方法,二使用SQL管理对象方法

三、数据表管理
1.字段的数据类型(28种)
(1)数字数据类型:整数、decimal和numeric(高精度)、money和smallmoney(货币)、float和real(浮点类型)、bit
(2)字符数据类型:char(后面加长度,是否够十个也占十个字节)、Varchr(可变动存储大小)、text(大容量文本,不限长度)、Nchar(占用不了十个)、Nvarchar、ntext
(3)日期和时间数据类型:datetime(时间精确度3.33毫秒)、smalldatetime(时间不精确)
(4)二进制数据类型:binar、varbinay、image
(5)专用数据类型
cursor、sql_variant等
2.使用CREATE TABLE语句(重点)
CREATE TABLE table_name
(表列信息)
3.系统表,用户自定义表,(临时表,分区表-特殊作用)
临时表:名称以单个数字符号#打头,他们仅对当前的用户连接是否可见,分为全局临时表本地临时表
4.修改表和列
exec sp_rename '原表名','新表名'(修改表名)

alter table 表名
add 列名 int null(添加列)

alter table 表名
alter column 列名 smllint null(修改列)

alter table 表名
dpop column 列名(删除列)
5.规则绑定与解除
create rule 规则名
sp_bindrule 列名
drop rule 规则名
sp_unbindrule 列名
6.数据关系图
分清楚主表,根据主表的内容找到各个表之间的关系。(主键额外键)

四、操作架构
1.视图
(1)创建(两种方式)
CREATE VIEW v_视图
as 
  select a.列名
  from 表名 a,表名 b
  where a.列名=b.列名(约束条件)
(2)修改
alter view v_视图名
as
  selsct 查看数据
  from 表
  on 约束条件
  join 表
  on 约束条件
(3)通过视图修改数据
   限制条件
select列表中含有distinct
select列表中含有表达书
在from子句中引用多个表
引用不可更新的视图
group by或 having子句

插入数据 
insert into v_视图名
values(数据)
2.索引
(1)索引的优点
保证数据记录的唯一性
加快数据检索速度(主要)
加快表与表之间的连接速度
减少查询分组和排序的师姐
使用优化隐藏器,提高系统性能
(2)创建索引
create nonclustered index 索引名称(非聚集)
on 列名
(3)架构
create schema 架构名 authorization 
数据库角色(架构所有者)

五、数据查询和管理
1.查询
select * from 表 (*表示所有信息)

select 查询字段  as 列名 from 表(as后面为保存列名)
2.排序
select * from 表 where 查询条件 and/or 查询条件
order by 列名 desc (列中排序)
(考试编号='0801'——查询条件)
3.分组
selectl 列,列 AVG(列)  * from 表 where 列查询条件 group by rollup/cube(列名)
4.使用函数
select AVG(列)* from 表 where 查询条件 and  查询条件 group by 列
 AVG:平均数 
 SUM:和
 TOP5:通过升降序选取前五名
5.插入数据
insert into 表(列,列) values('插入信息')

insert into  表1
select * from 表2

select *
into #临时表
from 列
where 插入条件
6.修改
select * from 表
update 表 set 修改内容 where 修改条件

select * from 表
update 表 set
from 表 a join 表1 b on a,a. 列=b
.列
where 修改条件
7.TOP子句
declare @i int
set @i=20
select top(6) with ties * from 表 order by 列        (返回前面六行的)
undate top(6)修改内容
8.compute子句
select * from 表 where 查询条件 order by 列1
compute sum(列分数),AVG(列分数)by 列1

六、操作查询
1.基本连接
select A.姓名,A.性别,A.出生日期,B.班级
from  学生信息 A,班级信息 B
where 学生信息 A=班级信息 B
2.内连接
基本连接后面加
on A.辅导员=B.辅导员编号  
内连接和基本连接功能一样,表现方式不同
3.左外连接和右外连接、全连接
select A.姓名,A.性别,A.出生日期,B.班级
from  学生信息  right  /  full全连接 outer /{ left左外连接}   jonin 班级信息 B
where 学生信息 A=班级信息 B
左右外连接功能一样,分清楚主表和从表,只能获取主表中的数据
4.交叉连接
select A.班级名,A.班级人数,B.姓名
from  班级信息 A cross join 辅导员信息 B
where A.辅导员=B.辅导员编号(和基本连接一样)
5.自连接
select A.班级名,A.班级人数,B.班级名
from 班级信息 A ,班级信息 B
where A.班级信息=B.班级信息 and A.班级编号<>B.班级编号
6.联合查询
select A.成绩编号,A.分数 ,B.姓名
from 成绩信息 A ,学生信息 B
where A.学生信息= B.学号 and A.课程编号='2'
union
select '',SUM(分数),'合计'
from 成绩信息 A ,学生信息 B
where A.学生信息= B.学号 and A.课程编号='2'
order by 分数
联合两个表的成绩进行求和,每个列中的数据类型保持一致
7.嵌套子查询
select A.成绩编号,A.分数 ,B.姓名
from 成绩信息 A ,学生信息 B
where A.学生信息= B.学号 and A.课程编号='2'
in(
select 学号 from 班级信息 A, 学生信息 B
where A.班级编号=B.所属班级 and A.辅导员=(
select 辅导员编号 from 辅导员信息 where 姓名 '王艳'
8.exists查询
select a.* from 成绩信息 a
where exists(selsct * from 考试安排 b where b.考试编号=a.考试编号 and b.考试编号='2018001')
另一种形式
declare @username varchar(20)
declare @pwd varchar(20)
set @username=2018001
set @pwd=123
if exitst(select * from 学生信息 where 学号=@username and 姓名=@pws)
print '的能录成功'
else
print'登录失败'



猜你喜欢

转载自blog.csdn.net/damishidai15/article/details/80506230