程序员一代码搬运工
【Java学习心得和Java学习技术个人总结】

java面试(六) 一数据库

 数据库:

 

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语句撤销原来行为。

 

未经允许不得转载:程序员一代码搬运工 » java面试(六) 一数据库

分享到:更多 ()