第一章
完整性
实体完整性
参照完整性
用户定义完整性
域完整性
数据库模型
由数据结构,数据操作,完整性约束
实体与关系
一对一,一对多,多对多
数据库体系
外模式有多个,面向多个用户。
模式只有一个,是对数据库中全体数据的逻辑结构和特征描述
内模式 数据物理结构和储存方式的描述。
外模式/模式映射:保证数据与程序的逻辑独立性
模式/内模式映射:保证了数据与程序的物理独立性
第三章
文件
1:主要数据文件(.mdf)
2:次要数据文件(.ndf)
3:事务日志文件(.ldf)
数据库的创建与管理
1:创建数据库
create database |数据库名字|
on(
name = '|逻辑名字|',
filename = '|存储名字|',
size = ?(数字,代表数据库的初始大小),
maxsize = ?(数字,最大为多少,unlimited(默认) 为无限制)
filegrowth = ?(数字或者百分数(例如4 或者10%),数据库的增长方式)
)
log on
(
---与上相同
)
2:修改数据库
alter database |数据库名|
/* 添加数据库文件*/
add file
(
name = '|逻辑名字|',
filename = '|存储名字|',
size = ?(数字,代表数据库的初始大小),
maxsize = ?(数字,最大为多少,unlimited(默认) 为无限制)
filegrowth = ?(数字或者百分数(例如4 或者10%),数据库的增长方式)
)
add log file(
---与上相同
)
modify file (
name = '新名字',
-----如此推算
)
/*删除数据库*/
drop |数据库名字|
第四章
表的创建与表数据操作
1:创建表
use 数据库名
create table(
列名1 数据类型 约束条件,
列名2 数据类型 约束条件,
列名3 数据类型 约束条件,
)
2:修改表
use 数据库名
go
alter table 表名
/*增*/
add 列名 数据类型 约束条件
/*改*/
alter column 列名(原来表里有的) 数据类型 约束条件
/*删*/
drop column 表名(删除表)
delete 表名 where (条件)
detele 表名(删除表里的全部数据)
/*添*/
insert into 表名(列名1,列名2…………) values (值1,值2…………)
/*更新*/
update 表名 set 列名1 = 值1 …… where ??
/*删*/
/*删*/
2:约束条件
3:例子
/*创建表*/
use database
go
create table table_1(
name varchar(36) not null primary key,
age int defeult age = 0
xueli varchar(59) check xueli = '小学' or xueli = '初中' or xueli = '高中'
)
第六章
1:查询
use 数据库名
go
select (distinct(去重)) 列名 | 聚合函数
from 表名
where 条件1 or 条件2
group by 将列中的值结果分成组
having (条件)
order by (表名)(asc(正序)|desc(倒叙))
例子1:按照成绩的正序排序
use xsdb
select *
from xscj
order by 成绩 asc
例子2:按照学期倒叙,课程成绩的正序
use xsdb
select *
from xscj
order by 学期 desc, 课程成绩
例子3:去重
use xsdb
select distinct 学号
from xscj
例子4:范围查询
use xsdb
go
select *
form xsxx
where 年龄 between 10 and 20
/*以下为替换语句*/
where 年龄 in (10-20)
where 10 <=年龄,年龄<=20
/*替换由此结束*/
/*不在范围内就改为not between and not in*/
where 年龄 not between 10 and 20
where 年龄 not in (10-20)
例子3:模糊查询
通配符 | 说明 |
---|---|
% | 0个或者多个字符 |
_ | 1个字符 |
[] | 指定范围 |
[^] | 指定范围外的 |
use xsdb
select 学号
from xsxx
where 学号 like '20%[1-6]'
聚合函数
聚合函数 | 支持的数据类型 | 功能描述 |
---|---|---|
sum() | 数字 | 对列中的所有非空值求和 |
avg() | 数字 | 对列中的所有非空值平均值 |
min() | 数字,字符,日期 | 对列中的最小数值,最小字符串,最早日期 |
max() | 数字,字符,日期 | 对列中的最大数值,最大字符串,最晚日期 |
count() | 任意 | 统计全部记录行的数量最多:2*32-1 |
sount_big() | 任意 | 与上相同,最多不同,为:2^63-1 |
多表连接
/*法一*/
select 显示的字段名
from 表1 join on 表2 表1.字段名 = 表2,字段名(连接条件)
/*法二*/
select 被显示的字段名
from 表1,表2
where 表1.字段名 = 表2.字段名(连接条件)