oracle使用记录

oracle使用记录

1、oracle获取字符串长度(原文)

a、length(string):返回字符串的长度,单位是字符

b、lengthb(string):返回字符串的长度,单位是字节

对于单字节的字符,使用以上两个方法的返回值是一样的,所以可以通过==比较字符串中是否包含中文;

注意:一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。

select length('cctv') from dual; 可查询汉字在Oracle数据库里占多少字节;

使用:想要判断code的长度,不同长度的code,表示了这是哪一个级别的数据!

2、oracle在一个表头新增一列

ALTER TABLE TABLE_NAME ADD (COLUMN_NAME DATATYPE);

3、oracle中的用户无法删除,提示“已经连接的用户无法删除”(原文)

使用这条语句查看连接状况:select username,sid,serial# from v$session

4、oracle修改字段名或者修改字段数据类型(原文)

alter table tableName rename column oldCName to newCName; -- 修改字段名
alter table tableName modify (cloumnName 数据类型); -- 修改数据类型

5、oracle根据varchar类型排序(原文)

大写字母>小写字母>特殊字符>数字。如果首位相同继续排列第二位,直到不同的位。

6、导出hbdb用户下的所有信息到hbprice中

导出:exp HBDB/123123123@192.168.80.119:1521/orcl owner=HBDB file=D:\mei.dmp
导入:imp HBPRICE/123123123@192.168.80.119:1521/orcl file=D:\mei.dmp fromuser=HBDB STATISTICS=NONE
//不加这个STATISTICS=NONE会报错:遇到 ORACLE 错误 6550---可能是因为导出的时候统计数据有错误,也一并导出了,那么导入的时候就需要加上这个
//hbprice需要拥有dba角色;
为用户授予dba权限:grant  dba to HBPRICE;
解决不能导出空表的问题:
a、导出前执行:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
b、copy执行语句的查询结果集,执行后再exp

7、oracle中创建删除用户

a、创建user:
  create user HBPRICE
  identified by 123123123
  default tablespace USERS
  temporary tablespace TEMP
  profile DEFAULT
  password expire;//密码过期
b、删除用户
  //加了cascade就可以把用户连带的数据全部删掉
  drop user HBPRICE cascade;
c、为用户授权:
  grant all privileges to 用户;
  grant select any table to HBPRICE;

8、oracle查询一个用户下有多少张表:

select count(*) from user_tables ;

9、oracle中的系统用户(原文)

sys/system
a、sys:这个账户相当于SQLserver中的sa账户,是个超级账户,拥有的权限最大,可以完成数据库的所有管理任务。
b、system:没有sys的权限大,通常用来创建一些用于查看管理信息的表和视图,同样也不建议使用system架构来创建一些与管理无关的表或视图。
c、sys和system在登录Oracle工具时,sys只能以系统管理员(sysdba)或系统操作员(sysoper)的权限登录,而system可以直接登录(normal),并且具有dba权限,但是没有oper权限;

10、SQL Plus的使用

a、cmd命令行输入:sqlplus /nolog 可以验证本机是否成功安装oracle;
b、在sqlPlus中登录oracle用户:conn {<username>[/<password>][@<connect_identifier>] | / }[AS { SYSDBA | SYSOPER }]
   conn sys/123123123 @orcl as sysdba;
   show user;//查看当前登录用户
c、退出:exit;
d、远程登录:sqlplus 用户名/密码@ip:1521/orcl

11、查看oracle中的所有用户(原文)

select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users;  查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !

12、oracle中日期格式化(原文)

a、定义:所谓格式化日期指的是将日期转为字符串,或将字符串转为日期
b、函数:
TO_CHAR(datetime, 'format')
TO_DATE(character, 'format')
TO_TIMESTAMP(character, 'format')
TO_TIMESTAMP_TZ(character, 'format')
c、示例:
select to_date('20150612', 'YYYY/MM/DD') from dual;
insert into account(logintime) values to_char(sysdate,'YYYY-MM-DD HH24:MI:SS');
d、mysql中插入当前时间用now()函数:insert into account(logintime) VALUES(now());//或者直接指定字符串

13、oracle中的substr()函数(原文)

格式1: substr(string string, int a, int b);
	1>、string 需要截取的字符串 
    2>、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
    3>、b 要截取的字符串的长度
格式2:substr(string string, int a) ;
	1>、string 需要截取的字符串
    2>、a 可以理解为从第a个字符开始截取后面所有的字符串。

14、oracle的常用函数(原文)

举例:使用TO_CHAR函数处理数字
TO_CHAR(number, '格式')
TO_CHAR(salary,’$99,999.99’);

15、对jdbc:oracle:thin:@192.168.3.98:1521:orcl的解释(原文)

jdbc:表示采用jdbc方式连接数据库
oracle:表示连接的是oracle数据库
thin:表示连接时采用thin模式(oracle中有两种模式)--瘦连接模式
@表示地址
1521和orcl表示端口和数据库名

16、jdbc连接oracle的三种格式(原文)

格式一: 
		Oracle JDBC Thin using an SID: 
		jdbc:oracle:thin:@host:port:SID 
		Example: jdbc:oracle:thin:@localhost:1521:orcl 
		注:
			a、oracle的sid可以通过以下指令获得:
			sqlplus / as sysdba;
			select value from v$parameter where name='instance_name';
			b、这种格式是最简单也是用得最多的;
格式二:
		Oracle JDBC Thin using a ServiceName: 
		jdbc:oracle:thin:@//host:port/service_name 
		Example:jdbc:oracle:thin:@//localhost:1521/orcl.city.com 
		注:
			a、oracle的service_name可以通过以下方式获得:
			sqlplus / as sysdba;
			select value from v$parameter where name='service_names';
			b、这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID是不一样的,但是SERVICE_NAME 确可以包含所有节点;当集群的时候,必须使用格式二这种;
格式三:
		Oracle JDBC Thin using a TNSName: 
		jdbc:oracle:thin:@TNSName 
		Example: jdbc:oracle:thin:@TNS_ALIAS_NAME 
		注:
		a、要实现这种连接方式首先要建立tnsnames.ora文件;
		b、看到这个想起了之前遇到的错误“tns目标主机找不到”,之所以遇到这个错误应该是本来想使用格式一,不小心用成了这个,结果百度查询好久ora文件的位置以及配置方法;

17、oracle中的sequence

a、定义:在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序或者主键自增的情况;
b、使用:insert into 表名(id,name)values(seqtest.Nextval,'sequence 插入测试');
c、注意:在oracle中sequence就是序号,每次取的时候它会自动增加;sequence与表没有关系;创建后方可使用;还需要有创建的权限;

18、查询当天数据

注意:对索引列使用函数会导致索引失效!
#使用to_char函数把日期类型转换成指定格式的字符串和系统时间进行对比
select * from SYS_DICT 
where to_char( create_date ,'yyyy-mm-dd') = to_char( sysdate ,'yyyy-mm-dd')	;
#使用trunc函数对日期进行处理
select * from SYS_DICT 
where trunc( create_date) = trunc( sysdate)
扩展:
	TRUNC()函数处理日期
    语法格式:TRUNC(date[,fmt])
    其中:date 一个日期值;fmt 日期格式。
    该日期将按指定的日期格式截取;忽略它则由最近的日期截取。
    示例:
	   select trunc(sysdate) from dual;--2019/4/2,返回当前时间
	   select trunc(sysdate,'yy') from dual;--2019/1/1,返回当年第一天
	   select trunc(sysdate,'mm') from dual;--2019/4/1,返回当月的第一天
	   select trunc(sysdate,'d') from dual;--2019/4/1,返回当前星期的第一天,即星期天
	   select trunc(sysdate,'dd') from dual;--2019/4/2,返回当前日期,今天是2017/2/13
	   select trunc(sysdate ,'HH24') from dual;--2019/4/2 15:00:00,返回本小时的开始时间
	   select trunc(sysdate ,'MI') from dual;--2019/4/2 15:13:00,返回本分钟的开始时间

19、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值