SQL语言

一、SQL语句共分为5大类:
DQL(data query language) 数据查询语言
DML(data manipulation language)数据操作语言
DDL(DATA definition language)数据定义语言
DCL(DATA control language)数据控制语言
TCL(transaction control language)事务控制语言


二、常见用法
1.在select语句中 chr(10)表示回车换行;

2.Oralce/MySql/SqlServer/Informix 数据库查询前几行/后几行的sql语句

SqlServer

select top 10 * from tablename;

Informix

select first 10 * from tablename;

Oralce

select * from tablename where rownum<=10;

MySql

select * from tableName limit 10

rownum是oracle自己定义的,无论在什么表中都有,表示行编号。


select * from
(
select * from student
where id<100
order by id
)
where rownum<=5


3.Dual是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中

查询当前用户
select user from dual
查询当前系统时间
select sysdate from dual
查询当前系统时间,并把时间转换成易读的方式
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual


4.select decode(empno,7369,'cxm','nonames') location, ename from scott.emp
decode是oracle内置的函数,在select语句中表示条件。当empno的值为7369时,返回cxm,否则返回nonames,location表示改列的别名。


select case empno when 7369 then 'cxm' when 7499 then 'cxm2' else 'nonames' end location, ename

from scott.emp

case也是内置函数,表示条件,用法如上。


5.查询时,如何给行加上序号,例如:
select rownum,empno,ename,job,sal from scott.emp
rownum就代表序号


6.select rownum,empno,ename,job,sal from scott.emp where sal >= (select avg(sal) from scott.emp)
查询高于平均工资的那些人。


7.往oracle表中插入日期型数据时,要使用to_date函数,例如:
insert into d values(to_date('2012-05-25 16:10:50','yyyy-mm-dd hh24:mi:ss'))


8.删除重复记录
rowid可以唯一标识一行记录,基本多个行的主键相同。所以,按照主键进行group,然后找出最大或最小的记录,其余的记录删除即可。例如:

delete from scott.emp where empno not in (select min(rowid) from scott.emp group by empno)

9.如何找出A表比B表多出的记录:
select id,name from A where id not in (select id from B)

10.如何找出A表和B表中相同的记录:
select id,name from A where id in (select id from B)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值