此文档是上课老师讲课记录的笔记,我将它记录到我的博客中,方便自己今后查看
笔记通俗易懂,适合初学者,欢迎采纳.....
数据库
数据库的前世今生
1:为什么需要数据库
因为数据越来越多,而且无时无刻不在制造数据。所以需要一套可以持久化存储数据的软件/工具,帮助我们去存储海量数据。
目前学习过的可以存储数据的有:
1.变量(单一、内存)-> int num = 10;
2.对象(多个,多个数据之间存在逻辑关系,内存) User u = new User(no:10,age:15,name:"张三")
3.数组(多个,多个数据之间存在逻辑关系,内存) User[] users = new User[]{user1,user2.....};
4.集合(多个,多个数据之间存在逻辑关系,内存) List、Set、Map
5.IO流
File 文件可以将数据存储到磁盘上,持久化存储
ObjectOutputStream 可以将java中一个对象通过对象流序列化到本地文件去
6.xml 存放数据的一种格式
2:数据库解决的实际问题
1:数据的持久化存储
2:维护了数据与数据之间的关系
3:存储的数据量很大
4:各种备份以及回退策略,避免数据的误删除
3:数据库的优缺点
1.大:存储海量数据
2.安全:不能出现频繁的数据丢失 最好保证在特定场景下是不可以丢失数据的
3.检索速度快:要求在极短的时间内要检索到需要查询的数据信息
4:数据库的发展历史
1.层级结构存储,存储方式是文件存储
2.网状结构存储以有向图的方式存储
3.关系型结构存储以二维表格存储
oracle: oracle(神谕) mysql
微软: sqlserver
IBM: DB2
手机: sqllite
4.非关系型结构存储 NoSQL not only sql
MongDB 、 Redis 、 HBase
安装卸载Oracle
前提
1:建议不联网
2:关闭防火墙
3:安装目录一定不能存在中文以及空格
卸载
1:卸载
2:关闭停止所有和oralce有关的服务
3:删除注册表
4:找到安装oracle数据库的安装目录 删除目录下的残存文件
安装
1:桌面版
2:密码: sys、system 等他们的密码 建议越简单约好
3:口令密码: scott 将密码设置为tiger
检测
--通过命令行:
>sqlplus /nolog
sql> conn sys/密码 as sysdba;
--如果出现已经连接 证明没有问题
>sqlplus /nolog
sql> conn scott/tiger;
--如果出现已经连接 证明没有问题
SQL
命令:
-- 连接 连接数据库服务器 免登录
sqlplus /nolog
-- 登录指令
-- conn 用户名/密码@实例
conn sys/123456 as sysdba;-- 通过sys/123456账户使用系统管理员登录
sql语句的语法规则
1:不区分大小写的 (推荐大写)
2:一行sql语句通过`;`结束
3: 为了好看,一般情况下将长的sql语句会折行处理
sql的分类:
DCL: 数据控制语言:
对于库、表做CRUD
DDL: 数据定义语言:
对于用户以及库进行操作(创建用户、删除用户、给用户授权。。。。)
DML: 数据管理语言:
DML:针对于数据的增加、删除、修改 写操作
DQL:针对于数据的查询操作 读操作
事务控制:
提交、回滚、设置回滚点
DCL
--1:创建用户 大权限用户创建用户
--create user 用户名 identified by 密码;
-- 创建一个张三用户 密码是123
create user zs identified by 123;
--2:授权用户 大权限用户授权用户
-- grant 权限1,权限2 to 用户名;
-- 给张三用户授权 连接权限
grant connect to li;
-- 给张三用户授权 表权限
-- grant 权限1,权限2 on 所属人.所属表 to 用户名;
grant select,insert on scott.emp to li;
-- 3:撤销权限
-- revoke 权限1,权限2 from 用户名;
-- 撤销li用户的查看以及插入权限
revoke select,insert on scott.emp from li;
-- 4:删除用户
-- drop user 用户名;
drop user li;
-- 5:对账户加锁
-- alter user 用户名 account lock;
alter user scott account lock;
-- 6:对账户解锁
-- alter user 用户名 account unlock;
alter user scott account unlock;
DDL
数据类型
数据类型 | 标识符 | 注意事项 |
---|---|---|
数值 | number | number(5)99999 number(5,2)999.99 |
字符串(固长) | char | char(2) ‘a’ --> 'a '实际存储长度小于指定长度通过空格补充长度 |
字符串(变长) | varchar/varchar2 | varchar(5) 'a' --> ‘a’ 根据实际存储长度决定当前串的长度 |
日期date | date | 年月日 |
日期 | datastamp | 年月日时分秒 |
blob | 二进制数据(不推荐使用) | 4G |
clob | 文本数据 | 4G (文章) |
-- 1:创建表
-- create table 表名(列名1 列类型1,列名2 列类型2.........);
create table tb_user(id number(4),uname varchar(5));
-- 2:查看表
select table_name from all_tables;
-- 3描述表
-- desc 表名(只能看表结构)
desc tb_user;
-- 3: 修改表
-- 前缀:alter table 表名
-- 3-1: 添加列
-- alter table 表名 add 列名 列类型;
alter table tb_user add age number(3);
-- 3-2:删除列
-- alter table 表名 drop column 列名 ;
alter table tb_user drop column age;
-- 3-3:修改列类型
-- alter table 表名 modify 列名 列类型;
alter table tb_user modify name varchar(4);
-- 3-4:修改列名
-- alter table 表名 rename column 旧列名 to 新列名l
alter table tb_user rename coloumn name to uname;
-- mysql
-- alter table 表名 modify 旧列名 新列名 数据类型;
-- 3-5:修改表名
-- alter table 表名 rename to 新表名;
alter table tb_user rename to t_user;
请查看下一篇>>>>>>