关于数据库的基本知识
1:数据库简史
2:为什么需要使用数据库?
3:数据库底层实现细节
4:sql语法(最重要)
为什么需要使用数据库?
数据库是什么?
存储数据的仓库称之为数据库。
数据库解决的问题:1:数据持久化问题。2解决传统IO瓶颈问题。
数据库的优势?
大、检索速度快、安全。
数据库简史
关系型结构: 物理结构--->二维表格。
关系型数据库:
sqlserver
db2
sybase
mysql
oracle
非关系型数据库:
mongeDB
redis
hbase
##数据库底层实现细节
sql
sql的分类
1:DCL 控制语言
2:DDL 定义语言
3:DML 管理语言
4:DQL 查询语言
常见登陆命令:
a:sqlplus /nolog 口令作用:打开数据库服务
b:conn / as sysdba; 将/用户 作为系统管理员登陆用户。
注意事项:
a:oracle数据库中的表时隶属于用户的。
b:当你需要查看一个不是当前登陆用户所属的表时,表前要加所属用户。
例子: select *from scott.emp; 通过系统管理员查看scott用户下的emp表中的所有信息
c:sql语言的语法规则:
i:sql语句不区分大小写 (推荐大写)
ii:以';'结尾。
iii: 换行,可以让sql更加利于阅读
###DCL 控制语言
查看当前数据库服务器中所有的用户:
select username from all_users;
1:创建用户
create user 用户名 identified by 密码;
create user ls identified by 123;
2:授权(权限高的给权限低的授权)
grant 权限1,权限,.... to 用户名 identified by 密码;
grant connect to ls identified by 123;
3:锁定账户
alter user 用户名 account lock;
4:解锁账户
alter user 用户名 account unlock;
5:删除账户
drop user 用户名;
6:撤销权限
revoke 权限1,权限,.... from 用户名;
###DDL 定义语言
表=行记录(数据)+表结构
表结构 = 列名+列类型
数据类型
数值型:
number(5)---> 当前类存储的时数值,该数值最大为99999
number(5,2)---> 当前类存储的时数值,该数值最大为999.99 5个长度 保留小数点后2位
字符串:
char(5)--->当前存储的数据是字符串类型 最多存储5个长度的串。 定长
varchar2(5)--->当前存储的数据是字符串类型 最多存储5个长度的串。变长
日期:
date time timestamp
1:创建表
create table 表名 (列名 列类型,列名 列类型....);
2:删除表
drop table 表名;
3:查看表结构
desc 表名;
4:修改:alter table 表名:
i:修改表名
alter table 表名 rename to 新表名;
ii:修改列名
alter table 表名 rename column 原列名 to 新列名;
iii:修改列类型
alter table 表名 modify 列名 列类型;
iv:添加列
alter table 表名 add 列名 列类型;
v:删除列
alter table 表名 drop column 列名;
三范式( 很重要 )
1:表的原子性(列中不能存在多个值,不能存在重复列)
2:主键唯一(存在一列用来区分行记录)
3:多张表如果存在关系,那么通过主外键维护。
如何构建表:
1:遵守三范式
2:梳理表和表之间的关系。
如何梳理关系: 说 一个老师可以教多个学生 一个学生可以被多个老师教
如何维护关系:
1对多关系中,关系由多的一方维护。(主外键,多的一方通过获取一的一方的主键在自己表中形成外键)。
多对多关系中,拆分中间表,让中间表和其他两张表存在1对多关系。由中间表维护该关系。