目录
Oracle基本概念:
- Oracle数据库:是一个文件系统,是物理概念;
- 实例:在Oracle的数据库中可以有多个实例,通常我们只用一个实例;
- 用户:一个实例下有多个用户;
- 表空间:一个实例下有多个表空间,表空间是逻辑概念,用来存储数据,一个表空间对应着一个或多个物理存储文件(.dbf和.ora);
- 用户和表空间的关系:一个用户有一个默认的表空间,一个表空间可以为多个用户作为默认表空间,用户和用户之间的数据是隔离,数据不会混;
- Oracle数据库源:
driver:oracle.jdbc.OracleDriver;
url: jdbc:oracle:thin:@localhost:1521:orcl;
username:xxxxxx;
password:xxxxxx.- Oracle中用户的概念相当于MySQL中database的概念.
查看当前数据库连接的用户:
show user
用户的切换:
conn 用户名/密码 [as sysdba ]
Oracle简单查询:
- 字符串连接使用'||':
select '员工编号是'|| empno || '姓名是' ename || '的工作是' job from emp;
- sql支持四则运算:
select ename,sal*12 from emp;
- 非空和空的限制:
为空:列名 is null;
不为空:列名 is not null.- 模糊查询:
'%':可以匹配任意长度的内容;
'_'可以匹配一个长度的内容.
字段类型:
- 1.Number(4):最大长度为4位的数值类型;
- Varchar2(10):最大长度为10的字符串,varchar2用于存储可变长度的字符串,varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节,varchar2把空串等同于null处理,而varchar仍按照空串处理,建议在Oracle中使用varchar2;
- Number(7,2):数值类型整数位占5位,小数位占2位,一共7位;
- Date:时间类型.
数据库语言:
- DML(数据库操作语言):其语句包括动词INSERT,UPDATE和DELETE,它们分别用于添加,修改和删除表中的行,也称为动作查询语言;
- DDL(数据库定义语言):其语句包括动词CREATE和DROP,在数据库中创建新表或删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等,DDL包括许多与数据库目录中获得数据有关的保留字,它也是动作查询的一部分;
- DCL(数据库控制语言):通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问,某些ROBMS可用GRANT或REVOKE控制对表单个列的访问.
单行函数:
- 把小写的字符转换成大写的字符:
select upper('ccc') from dual
- 把大写的字符转换成小写的字符:
select lower ('ccc') from dual
- 把首字母大写:
select initcap ('ccc') from dual
- 字符串的可以使用concat:
select concat('hello','world') from dual
- 字符串的截取,使用substr,第一个参数是源字符串,第二个参数是开始索引,第三个参数是结束的索引,开始的索引使用1和0效果相同:
select substr('hello',1,3) from dual
- 获取字符串的长度:
select length('ccc') from dual
- 字符串替换:第一个参数是源字符,第二个参数被替换的字符,第三个是替换字符串:
select replace('hello','l','x') from dual
表管理:
- 删除表
drop table 表名
- 修改表名
1.alter table 旧表名 rename to 新表名
2.rename 旧表名 to 新表名
-
复制表结构
create table 新表名 as select * from 旧表名 where 1=2
- 复制表数据
1.表结构一样
insert into 新表名 select * from 旧表名
2.表结构不一样
insert into 新表名(column1,column2...) select (column1,column2...) from 旧表名
- 复制表结构和表数据
create table 新表名 as select * from 旧表名
- 添加列
alter table 表名 add 列名 类型
- 修改列
1.修改列定义
alter table 表名 modify 列名 类型
2.修改列名
alter table 表名 rename column 旧列名 to 新列名
- 删除列
alter table 表名 drop column 列名