oracle版本和工具
版本:oracle11g 工具:PLSQL Developer
下载地址:
oracle11g:
https://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_1of2.zip
https://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_2of2.zip
PLSQL Developer:http://files.allroundautomations.com/plsqldev1106x64.exe
oracle安装教程:https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html
Oracle的需要启动的服务
OracleOraDb11g_home1TNSListenerOracleServiceORCL
账号和密码
账号:scott 密码:tiger账号:system 密码:安装时自定义密码
导入表
@路径/表名.sql ; 例:@d:/del_data.sql; //有错误不能管 依次添加就ok查看表是否添加select * from user_tables; desc 表名; //表信息 表描述
坐下!基本操作
创建表:
方式1:
create table 表名(
id number(10) primary key,
username varchar2(20) constraint 表名_username_nn not null,
//表名_username_nn 是约束的别名,在可视化界面可以根据别名进行查看约束,增加可读性
update_date date
)
方式2:
CREATE TABLE 表名 AS select 列1 别名1,列2 别名2,列3 from 表名2 where 条件
//根据另一个表中的字段进行创建表,可以把另一个表中的字段放入建表的字段中,表中的数据也会导入进来,可以根据限定条件引入指定数据.
修改表:
追加新的列
alert table 表名 add (字段名 类型(长度));
修改现有的列
alert table 表名 modify(字段名 类型(长度));
为新追加的列定义默认值
alert table 表名 modify(字段名 类型(长度),default '默认值');
删除一个列
alert table 表名 drop column 列名;
重命名一个列
alert table 表名 rename column 列名 to 重命名;
重命名一个表
rename 表名 to 重命名;
修改列为主键
alert table 表名 primary key(列名);
删除表的三种方式和区别:
drop table 表名; //不可回滚 表和数据都删除
truncate table 表名; //不可回滚 表的数据进行清空 truncate:清空
delete table 表名; //可回滚 表的数据进行清空
插入数据:
insert into 表名 values(1,'test'); //注意这里和mysql不同的是 必须要用单引号 必须写values 不能写value
//将另一个表中的数据插入本表中insert into 表1(列1,列2) select 列1,列2 from 表2 where 条件;
//脚本插入insert into 表名(列1,字符列2,日期列3) values($列1,'$字符列2','$日期列3');
修改数据:
update 表名 set name = 'test' where id = 1;
骚操作
update 表名 set 字段 = (select 列名 from 表名 where 条件) where 字段 = (select ......); //说明oracle中可以嵌套命令
删除数据:
delete table where id = 1;
常用查询:
select * from user_tables; //查询此用户拥有哪些表
select * from 表名; //普通查询
select * from 表1 left join 表2 on 条件表达式; //左外连接查询
select * from 表1 right join 表2 on 条件表达式; //右外连接查询
select * from 表1,表2 [where 条件]; //内联查询
select * from 表名 order by 字段名 asc; //升序查询 默认使用的是升序(asc),降序使用desc
select name from myempl group by name; //分组查询 注意分组查询的字段要和分组的字段一致
设置主键:
alter table 表名 add primary key(字段名);
函数:
count(),sum(),max(),min(),avg(),round()
例子:select count(表名.字段名) from 表名;
分页查询
主要使用rownum关键字
select * from 表名 where rownum >= 1 and rownum <= 3; //查询第一条到第三条数据
select * rownum,字段1 from (select 字段1 from 表 order by desc) where rownum >= 10 and rownum <= 20;
总结mysql和oracle的不同之处:
1.使用查询语句的时候,字符串必须要用单引号 必须写values 不能写value
2.插入日期时可以使用to_date(''2018-7-26,'yyyy-mm-dd')函数
3.使用查询语句的时候,不管是查询函数还是什么情况,一定要有from关键字
4.使用分页查询的时候,mysql使用的是limit关键字而oracle使用的是rownum关键字
5.mysql中的字符串是用varchar声明,oracle使用varchar2