数据库:
dbms:数据库管理系统,软件。
db:数据库系统(硬件+软件)。
数据发展的四个阶段:
层次模型–>网状模型–>关系型–>面向对象数据库
什么叫做E-R图:
实体关系图。
怎么绘制E-R图:
概念模型–>物理模型–>sql导出。
学号 姓名 年纪
1 白 18
2 白2 28
3 白3 38
键:可以标志1条记录的字段。
主键:从键中挑选中1个。
复合主键:主键由两个或两个以上字段组成。
金额 出厂年代 市值
1分 53 5000
1分 90 10
1分 2000 1分
(金额+年代)
范式的作用?去除冗余。
范式1: 原子性。每个字段都不可再分。“地址” “地址及性别”。
范式2:唯一性。表有主键,
范式3:非主键间不存在依赖关系。
学号 姓名 班级编号 班级名
1 白 s01 1年纪1班
范式并不是越高越好:表的关联变多,费内存;丢失历史数据。
sql的英文全称:structured query language。结构化查询语言。
ddl:创建/删除逻辑对象。create database;create table;drop .
DML:select /update/insert/delete/truncate
DCl:grant/revoke/deny
delete,drop,truncate的区别:
delete 删除where条件的记录。
drop :删除整个表结构,包含约束,日志,触发器。
truncate:截断表的所有数据,包含日志。但不删除表结构及约束,触发器。
如何写1条sql语句创建备份表?
select * from 表1 into 表2.
insert (select * from 表1) into 表2。
sql servler:
写出5种约束的语句。
alter Book
add constraint PK_BOOK_BID primary key(bid);
alter Book
add constraint UK_BOOK_BNAME unique(bname) ;
alter Book
add constraint DF_BOOK_BNUM default '5' for BNUM ;
alter Book
add constraint CK_BOOK_BNUM check(bnum>=0);
alter book
add constraint FK_BOOK_BTYPE_BTID foreign key(btid) references BOOKTYPE(BTID);
TSQL是什么:Transaction-SQL.微软对sql的增强语法。
go/if/while/begin end/
declare @i int;
while (1=1) then
begin
set @i = 1;
set @i = @i+1;
if (i = 2) then
break;
end
go;
go的作用是什么?标志批处理的结尾。create/DROP语句后一定要加go.
TSQL:从数据库中获取值赋给变量的方法
存储过程的作用:1 预编译–》提高执行速度 2 节省网络报文 3 将常用的sql操作模块化 4 安全。
存储过程两种返回值方法:return/出参.
出参返回:
create proc findAge
@id int -- 入参
@age int out--出参
as
begin
select @age=age from Person where id=@id;
end;
return返回
create proc findAge
@id int -- 入参
as
declare @age int;
begin
select @age=age from Person where id=@id;
return @age;--只能返回整型
end;
如何调用存储过程(sql语句/jdbc中调用):
Exec 存储过程名 入参1,入参2.。
jdbc:CallableStatement(专门调用存储过程的对象)
statement --基类(一般用来做查询)
PreparedStament--(预编译速度快,一般用来做修改和ddl)
视图的作用和限制(不能包含什么关键字):
a 让字段容易理解 b 安全 ,不能包含order by。最好只做查询。
create view Person_VIEWS
asbegin
select top 500 * from person;
end;
索引的作用和分类:提高查询 速度。唯一索引;非聚集索引,聚集索引(索引顺序与数据的物理顺序相同,只能1个)。
只能创建1个的索引是什么?
事务:数据库操作的逻辑最小单元,这些操作要么同时成功,要么同时失败。
四个特性:acid–原子性 一致性 隔离性(5种级别,最高是serial串行化,默认是read-commited)。 持久性。
两种事务:
隐式事务–只跑一条sql语句。
显式事务:begin transaction
rollback;
commmit;
触发器:
事后触发:create triger XXX on 表名 for update.
需要调用rollback语句撤销原来行为。
两张临时表inserted .deleted
事前触发:create triger XXX on 表名 instead of update/delete/insert.
无需调用rollback语句撤销原来行为。