关闭

Oracle基本语句2

标签: 11goraclesql语句sql数据
193人阅读 评论(0) 收藏 举报
分类:
--SQL的组成
--DCL: 数据控制语言  grant(授权)、revoke(撤消)
--DDL: 数据定义语言  create drop  alter truncate
--DML: 数据操作语言  select insert update delete
--TCL: 事务控制语言  rollback commit savepoint
--事务:
--原子性:
--隔离性:
--一致性:
--持久性:


--表示事务的结束:
--commit:持久化, 把数据写入数据库中,
--rollback : 返回事务开始的地方, 

--保存点
--savepoint 回滚点:在事务建立不同的回滚点
--rollback to 回滚点 : 返回到那一个回滚点


--oracle中事务自动启动


DML:
	--插入数据 insert
		--插入一条数据
			insert into person (id, name, tall, birthday, phone, sex,computerID) values (1008, '小白', 1.92, '12-3月-92', 1223423161,default,10001);
		--插入多条数据
			insert into person 
			select 1002, '小明', 1.78, sysdate, '12345678896',null from dual union 
			select 1003, '小名', 1.88, sysdate, '12345628896',null from dual union 
			select 1004, '小利', 1.74, sysdate, '12345673396',null from dual;

	--更新数据 update
		--1、更新符合条件的数据
			update person set tall = 1.70 where id = 1003;
		--2、更新所有数据
			update person set tall = 1.70;
	--删除数据 delete
		--第一种更新符合条件的数据
			delete from table_name where colunm_name = comunm_values;
			delete from person where id = 1001;
		--删除所有
			delete from table_name;
			delete from person;

--不是DML
	truncate table person;--数据不能通过rollback回退回来;

--查询数据 select 
	--第一:查询所有 *  表示所有字段
		select * from table_name;
	--第二:查询所有数据的部分字段 []表示可有可无
		select column_name [,.....] from table_name;
	--第三:查询部分数据的部分字段 where 表示 满足的条件
		select column_name [,.....] from table_name where column_name = column_value;
		
--查询其他用户的表  用户名.表名
	scott.emp;
	
	--普通用户之间不能互相访问表,需要访问,必须通过授权
	grant 权限 on 表名 to 用户名;
	--给其他用户查询权限:(把scott 用户的emp表的查询权限赋给xh)
	grant select on emp to xh;
	
--模糊查询:
	--like :通配符 % 表示任意长度的任意字符  _ 表示一个长度的任意字符,只能对字符使用
		--查询名字带有A的ename		
		select ename from scott.emp where ename like '%A%';
		--查询名字第二个字母A的ename		
		select ename from scott.emp where ename like '_A%';
		
	--between... and ...可以使用  数字和日期
		--查询sal在1000到2000的 用户		
		select * from scott.emp where sal between 1000 and 2000;
		--日期 转字符串 :to_char(日期,要转化的日期格式)
		select to_char(hiredate, 'yyyy"年"MM"月"dd"日,"day') "入职日期"from scott.emp;
				入职日期
				-----------------------
				1980年12月17日,星期三
		--字符串转日期:to_date(日期字符串,按日期格式)
		--添加数据
		 insert into scott.emp(empno, ename, hiredate) values (2233, 'A_ABC', to_date('2014-2-21', 'yyyy-MM-dd'));
		 
		 --查询从2013年1月1日到2015年7月1日的员工
		 select * from scott.emp where hiredate between to_date('2014-1-1', 'yyyy-MM-dd') and to_date('2015-7-1', 'yyyy-MM-dd');
		 
	--in 
		--员工编号是: 7788,7698,7900的员工信息
		select * from scott.emp where empno =7788 or  empno =7698 or  empno =7900;
		select * from scott.emp where empno in(7788,7698,7900);

	--查询:ename以 'A_'开头的员工信息
	select * from scott.emp where ename like 'A_%';--不行,_被作为匹配符来使用
	select * from scott.emp where ename like 'A\_%' escape '\';  --escape把\变成转义符

	
--函数:
	--字符串:
		--initcap 把首字母变成大写
		select initcap('&str') from dual;
		
		--upper  :大写
		select upper('&str') from dual;
		
		--lower  :小写
		select lower('&str') from dual;
		
		--substr(字符串,截取的开始位置,截取长度) ,截取子字符串,开始位置是1
		select substr('&str',3,2) from dual;
		
		--instr(字符串,查找字符串)  查找字符串,返回初始位置
		select instr('&str','&substr') from dual;
		
		--replace(字符串,要替换的字符串,要替换成的字符串)
		select instr('hello','l','pp') from dual;

		--length(字符串) 返回字符串的长度
		select length('hello') from dual;
		
		--rtrim('')  返回字符串的长度,去掉右空格
		--ltrim('')  返回字符串的长度,去掉左空格


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7821次
    • 积分:203
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论