1.数据库
DB(database) 用来存储数据的仓库
DBS(数据库系统) 一套软件 包括DB 和DBS
DBMS(数据库管理系统)
主流数据库: 主流数据库
2.sql->structs query lanagues(结构化的查询语言)
任何数据库都支持的语言标准sql
不同数据库
1:数据类型会存在一些差异
2:函数存在一些差异
3:存储过程 plsql.一些差异
3.Oracle 定义
1) oracle版本
oracle7 – oracle8 -> oracle8i -> oracle9i -> oracle10g -> oracle11g -> oracle12c
i->internet 支持网络访问操作
g-> grid 支持网格的数据库 (支持分布式应用)
c->cloud 支持云计算的数据库
2)oracle数据类型
- 字符类型
char 是一个定长的字符类型 最大存储空间是2000字符
char(10) “a”, -> a ,
varchar 是一个变长的字符类型最大存储空间是4000字符
varchar(10) “a” -> a,
varchar2 是一个变长的字符类型最大存储空间是4000字符,是oracle 10g新推出的数据类型在varchar上面改正的数据类型,在性能上比varchar高
- 数值类型
number 可以存储任意的数据 包括带小数位的
number(n) n代表整数位数
number(3)->存储范围 -999 -999
number(n,m) n代表有效值的总位数 m小数位数
number(5,2) ->存储范围 -999.99 -999.99
- 时间类型
date 时间 可以存储到 年月日 时分秒
timestamp 时间 可以存储到 年月日 时分秒 毫秒
- 大数据类型
clob 以字符存储的大数据 最大值是4G (文章)
blob 以二进制存储的大数据 最大值是4G (视频 照片)
3) oracle 表 列命名规范
必须只能是 字母 数字 _ - $ 组成
首字母必须不能是数字
命名不能是oracle的关键字 number char varchar….
命名的长度不能超出 30个字符
数据库中 表名 列名 关键字 都不区分大小写,但数据值区分大小写
4、数据库定义语言 DDL(database defined language)
1)创建表:
create table 表名(
列名1 数据类型1,
………,
列名n 数据类型n
)
2) 修改表结构
- 添加列
alter table 表名 add (字段名 字段类型 默认值 是否为空,....);
- 修改列
alter table 表名 modify (列名 新的数据类型,….. 列名 新的数据类型)
- 删除列
alter table 表名 drop column 列名;
- 字段重命名
alter table 表名 rename column 老列名 to 新列名
- 表的重命名
alter table 表名 rename to 新表名
3) 删除表
drop table 表名;
/*删除闪回为删除oracle10g中的数据库实体提供了一个安全机制,当用删除一个表时,oracle10g
会将该表放到回收站中,回收站中的对象一真会保留,直到用户决定永久删除它们或出现表空间的空间不足
时才会被删除。回收站是一个虚拟容器,用于存储所有被删除的对象*/
flashback table 表名 to before drop;
4)截断表
truncate table 表名;//删除数据,保留表结构
5、数据库操纵语言 DML(database manipulate language)
- 向数据库表里面插入记录
insert into 表名 (列名1,。。。。。列名n) values (列名1值,…. 列名n值);
数据仅仅插入数据库的缓冲器 要进入数据库 必须启动事务操纵
Commit ;或者 rollback;
- 删除表里面的记录
delete from表名 删除表里面的所有记录 保留表结构
也需要 Commit ;或者 rollback;
drop table
删除表 删除表数据与表结构 不能回滚 会释放空间
truncate table
删除表数据 保留表结构 不能回滚 会释放空间
delete table
删除表数据 保留表结构可以回滚 不释放空间
- 修改表里面的数据
Update 表名 set 属性1=值1,….. 属性1=值1 where 属性=值;
6、数据库的规范(范式)
第一范式 :表的列不可再分
第二范式: 在满足第一范式的基础上,行数据可以唯一区分
可以考虑给表加上唯一可以区分的 不能重复的列(主键)
第三范式:在满足第二范式的基础上,外键要依赖其他表的主键
7、表的约束
constraint 约束名 约束类型(列名)
创建表的时候添加约束:
Create table xxx( 列1 数据类型1, ..., Constraint 约束名 约束类型 (列名) )
创建完表之后添加约束:
alter table ttss_user add constraint ttss_user_pk primary key(id);
- 主键约束(primary key)
- 唯一约束(unique):只可以有一个null
-
检查约束(check):常用于范围检查
constraint sex_check check(sex='女')
-
默认值约束(default ):写法不一样
alter table 表名 modify 列名 default 默认值
-
外键约束(foreign key):值可以是null
constraint 约束名 foreign key(列名) references 外表名(列名)
网友评论