安装软件:
Oracle11g--数据库
PLSQL Developer10 -- 操作数据库的工具
数据库有本地,也有线上或者服务器上的.
通过ip连接其他的数据库.`
查看IP:
Oracle两个服务:
PL/SQL 工具设置字体:Tools菜单-preferences-fonts
PL/SQL 创建sql文件:files-new-sql window
分类:关系型,非关系型(radius,hbase);
了解市面上常用的数据,以及类型:
WEB项目运用的是关系型数据库.
小型开源数据库:
Mysql(oracle) sqlserver(微软)
中型数据库:
Sybase
大型数据库:
Oracle DB2(IBM)
关于数据库:
1 数据库是干嘛?
保存数据,内容.
2 用户操作记录.
3 数据是用来存储和操作的.
4 数据是企业的核心竞争力之一.
腾讯,阿里,百度,京东,三大运营商.
使用数据:
字段A |
字段B |
字段C |
... |
数据 |
数据 |
数据 |
数据... |
数据 |
数据 |
数据 |
数据 |
数据 |
数据 |
数据 |
数据 |
数据 |
数据 |
数据 |
数据 |
比如:学生表(学号,姓名,年龄,性别,班级...)
学号 |
姓名 |
年龄 |
班级 |
001 |
张学友 |
38 |
计算机1班 |
002 |
刘德华 |
45 |
软件2班 |
|
|
|
|
数据类型声明的语法: 类型(长度)
to_date(‘2018-8-20 14:20:10’
,’yyyy-mm-dd HH24:MI:SS’);
to_date(具体时间,时间的格式);
to_char(date字段,’yyyy-mm-dd HH24:MI:SS’)
to_char(date的字段,时间格式);
Clob(character large object),最大存储4G字符.
Blob 二进制数据,存放 图片,声音,视频数据.
一般在真实姓名中不会直接存储多媒体,一般存储多媒体的路径.除非是从安全需求考虑才会存储到数据库中.
操作数据库的语言:SQL;
SQL (结构化查询语言),是一种数据库查询和程序设计的编程语言,用于存取数据,查询,更新,和管理关系型数据库系统.
表: 人 ( 编号, 名字 ,网名,地址,具体城市 )
编号 |
名字 |
网名 |
地址 |
城市 |
|
|
|
|
|
Create table 表名(类型 字段名,类型 字段名);
取名规则:
Eg:
-- :sql注释
-- 创建表sql
create table person_1807(
id number(10), --字段与字段之间用逗号分隔
name varchar2(20),
nickName varchar2(20),
address varchar2(100),
city varchar2(50) --字段结尾不能写逗号
); --一条sql语句结束通过分号结尾.
insert into 表名(插入的对应字段1,字段2...)
Values(被添加的数据1,数据2);
insert into 表名 Values(被添加的数据1,数据2);
Eg:
--A.指定插入对应字段.
--insert into 表名(插入的对应字段1,字段2...)
--Values(被添加的数据1,数据2);
insert into
person_1807(id,nickName,name,city)
values(1,'我是一只花','张晓明','江西南昌');
--注意:字段的顺序是可颠倒
--B.不指定字段
--insert into 表名 Values(被添加的数据1,数据2);
insert into person_1807
values(2,'李帅','秋风',
'南昌县马山村','江西南昌');
--注意:没有足够的值.
--数据库有事务管理
--事务管理:
--执行sql的过程中,出现了错误,
--事情回滚到sql执行之前.
--执行sql成功,并且提交,事情才是正真成功.
--sql执行,提交动作和回滚动作.
commit; --提交,提交完成事务才算完成.
A.查询所有的表中的字段.不推荐使用,速度慢.
select * from 表名 ;
--查询
select * from person_1807;
B.指定表中的字段查询.
select 字段名,字段名 from 表名 ;
查询的关键字:
Distinct:唯一数据
Where:条件子查询
And:条件并列
Or:条件或者
Order by 字段 asc 升序排序,desc降序排序.
对数字和字符都是按照unicode排序.
Eg:
--添加一条重复的数据.
insert into person_1807
values(3,'李帅','秋风',
'南昌县马山村','江西南昌');
commit;
--distinct:唯一数据.
select distinct name,nickname from person_1807;
--where:子查询,通过条件判断查询.
select * from person_1807
where id = 1;
--and:条件并列
select * from person_1807
where name='李帅' and id =2;
--or:条件或者
select * from person_1807
where id=1 or id =2;
--order by : 排序 默认升序asc
select * from person_1807
order by id asc; --升序排
select * from person_1807
order by id ; --升序排
select * from person_1807
order by id desc; --降序排
--对多个字段排序
select * from person_1807
order by name asc,id desc;
--排序的优先级:前面的字段优先级更高
--字符字母的排序:底层排序按照unicode码;
insert into person_1807
values(4,'a李帅','秋风',
'南昌县马山村','江西南昌');
insert into person_1807
values(5,'b李帅','秋风',
'南昌县马山村','江西南昌');
commit;
--同时排序order by与子查询where一起使用
--select sql 语句基本语法顺序:
select 字段1,字段2...
[into 其他表] -- 可写,添加到其他表中.
form 来源表名
[where 条件1 and|or 条件...] --条件查询
[group by 分组字段] --分组
[having 针对分组的条件 ]--分组条件
[order by 字段 asc|desc]--排序
--同时运用很多的关键字,按照语法
select * from person_1807
where nickname = '秋风'
order by id desc;
Update 语法:
Update 表名 set 更新的字段 = 新的数据
Where 指定更新条件 = 条件的值.
注意:不加where 会更新此字段的所有数据.
--更新数据
update person_1807
set city = '杭州' , address = '紫阳大道'
where id = 1;
commit;
select * from person_1807;
update person_1807 set address = '青山湖彭家桥';
rollback;--回滚
修改字段名
Alter :修改字段名
Alter 语法:
Alter table 表名 rename column 字段名 to 新名字.
EG:
--修改字段名(列)
alter table person_1807
rename column city to citys;
修改字段长度
Alter table 表名 modify 字段名 数据类型(长度);
--修改字段的长度
alter table person_1807
modify citys varchar2(250);
--修改字段的类型
alter table person_1807
modify id int;
--修改表名
rename person_1807 to person_180702;
select * from person_180702;
删除记录:delete from 表名 where 条件.
注意:与update一致,无where会删除所有记录.
Eg:
--删除记录
delete from person_180702
where id = 3;
delete person_180702;
rollback;
删除字段(列):
Alter table 表名 drop column 字段;
删除表:
Drop table 表名;
Eg:
--删除字段
alter table person_180702
drop column citys ;
--删除表
drop table person_180702;
插入:to_date(“时间”,”格式”);
取出:to_char(日期字段,”格式”);
--创建表
create table date_table(
id number,
name varchar2(20),
birth date
);
--查询
select * from date_table;
--插入记录
insert into date_table(id,name,birth)
values(1,'小明',
to_date('2018-08-20 18:8:8',
'yyyy-mm-dd HH24:mi:ss')
);
--取出时间
select to_char(birth,'yyyy-mm-dd HH24:mi:ss')
from date_table;
-- sysdate:系统时间
select sysdate from dual;
-- dual:系统提供的虚表,只做功能测试.
select * from dual;