- 浏览: 261161 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
nanfei:
运行没看到反应~
Android利用Http下载文件 -
jebai0521:
学习了,有点错误!
Android利用Http下载文件 -
avalonzst:
mark一下.写的真不错.
Oracle中的DDL语句 -
284772894:
Good,不错,新手学习中
android中的布局 -
zhiwen2050:
<script>alert("张三&qu ...
grid++ report在线报表的使用笔记
Select专题
一、基础
1.基本的Select 查询语句
语法:
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;
(1)查询所有的列:
select * from dept;
select dname,deptno,loc from dept;
*的效率低
(2) Sql语句的书写规范:
1.大小写不敏感
2.可以分行写
3.关键字不能分行和和缩写
4.条件一般分行写
select * FROM EMP;
SELECT *
FROM emp;
(3)数学表达式 :+ - * /
select ename,sal+300 from emp;
运算符的优先级:
*、/ > + - 同级从左到右进行运算,( )优先级最高
select ename,sal,12*sal+100 from emp;
select ename,sal,12*(sal+100) from emp;
(4) NULL 是一个不可用的值,不同于0或空行
select ename,sal,comm from emp;
select ename,sal,12*sal*comm from emp;
(5)定义字段column别名 alias
可以直接在字段column名后,也可以是column名 as 别名alias
需要双引号如果包含空格或特殊字符,再者是为了大小写敏感
select ename name,sal,12*sal*comm from emp;
select ename name,sal,12*sal*comm as "Annual Salary" from emp;
(6)连接字符 ||
select ename||job as "Employees" from emp;
select ename||' is a '||job as "Employees" from emp;
(7)常量 :字符, 数字,日期等(在Select中)
日期和字符必须要单一行单引号''包围起来
select ename ||' is a'||job as "Employee Details" from emp;
(8)处理重复的行 distinct
select deptno from dept;
select distinct deptno from emp;
二、约束和排序数据
语法:
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table
[WHERE condition(s)]
[ORDER BY];
(1) WHERE 条件
日期和字符必须要单一行单引号''包围起来,
字符串的值是大小写敏感的,日期date的值是格式敏感的(默认:DD-MON-RR)
1. 约束列
select * from emp where deptno=30;
select * from emp where ename='KING';
2. 比较:=, >,>=, <,<=,<>
select * from emp where sal>2000;
3. between ... and ...,in(set),like, is null
select * from emp where sal between 2000 and 2500;
select * from emp where mgr in (7698,7839,7788);
//%>=0 _=1
select * from emp where ename like 'A%';
select * from emp where ename like '_A%';
//转义字符 ESCAPE
SELECT last_name, job_id
FROM employees
WHERE job_id LIKE '%SA\_%' ESCAPE '\';
select * from emp where mgr is null;
4. 逻辑条件: and ,or,not
select * from emp where sal>1000 and job like '%MAN%';
select * from emp where sal>1000 or job like '%MAN%';
select * from emp where job not in ('SALESMAN','CLERK');
5.约束的优先级
1 Arithmetic operators 算术运算符
2 Concatenation operator 链接运算符
3 Comparison conditions 比较条件
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 NOT logical condition
7 AND logical condition
8 OR logical condition
select * from emp where job='SALESMAN' or job='CLERK' and sal >=1300;
select * from emp where (job='SALESMAN' or job='CLERK') and sal >=1300;
(二) ORDER BY 排序 ,放在SELECT语句的最后
ASC: ascending order, default 升序
DESC: descending order 降序
1. select * from emp order by hiredate;
2. select * from emp order by hiredate desc;
3. 按照别名排序
select ename,sal,12*sal annsal from emp order by annsal;
4. 利用多列进行排序
select ename,deptno,sal annsal from emp order by deptno,sal desc;
三 、函数
(1)字符串函数
select ename,lower(ename) from emp; //转化为小写
select upper('Sql course') from dual;//转化为大写
select initcap('sql course') from dual;//转为驼峰写法
dual table :是和数据字典以前生成的一张表,dual是在SYS的Schema中,但能被所有的用户使用
dual表有一个DUMMY的字段,有一X的值
select * from emp where ename='smith'; //没记录
select * from emp where lower(ename)='smith';//有记录
select concat('Hello','World') from dual; // 字符串连接
select substr('HelloWorld',1,5) from dual;
select length('HelloWorld') from dual;
select instr('HelloWorld','W') from dual;
select lpad(sal,10,'*') from emp;
select rpad(sal,10,'*') from emp;
select trim('H' from 'HelloWorld') from dual;
(2)数值函数
select round(45.926,2),round(45.923,0),round(45.923,-1) from dual;
select trunc(45.926,2),trunc(45.923,0),trunc(45.923,-1) from dual;
select mod(1600,300) from dual;
(3)日期函数
可以+ - 一个日期;
两个日期相减得到两日期间的间隔天数;两日期不能相加
select sysdate from dual;
select sysdate+1 from dual;
select sysdate-1 from dual;
select ename,hiredate, (sysdate-hiredate)/365 from emp;
select sysdate+24/24,sysdate+33/24 from dual;
months_between(date1,date2)= (date1-date2)
select months_between(to_date('1999.11.29','yyyy.mm.dd'), to_date('1998.11.
29','yyyy.mm.dd')) from dual;
add_months(date,number)=(date.month+number)
select sysdate as today ,add_months(sysdate,1) as next_month,
add_months(sysdate,-1) as last_month from dual;
next_day(date,'day')
select next_day(sysdate,5) from dual;
select next_day(sysdate,'星期五') from dual;
last_day(date)
select last_day('01-4月-95') from dual;
round(date,'format')
select round(sysdate,'month') from dual;
select round(sysdate,'year') from dual;
select trunc(sysdate,'month') from dual;
select trunc(sysdate,'year') from dual;
(4) 转化函数
a) to_char(date,'format_model')
format_model: 必须加单引号'' ,大小写敏感
YYYY(Full year in numbers)
YEAR(Year spelled out)
MM(Two-digit value for month)
MONTH(Full name of the month)
MON(Three-letter abbreviation of the month)
DY(Three-letter abbreviation of the day of the week)
DAY(Full name of the day of the week)
DD(Numeric day of the month)
HH or HH12 or HH24
MI
SS
select ename,to_char(hiredate,'fmDD Month YYYY') from emp;
b) to_char(number,'format_model')
9 代表数字
0
$ 美元符号
L 本地货币符号
. 小数点
, 千分割符
select ename,to_char(sal,'L999,999.00') from emp;
c) to_number(char[,'format_model'])
select to_number('1234') from dual;
select to_number('1234','9999') from dual;
d) to_date(char[,'format_model'])
select to_date('020908','ddmmyyyy') from dual;
(5) 通用函数
a) nvl(expr1,expr2) ,如果expr1为null,则用expr2代替
select ename,sal,nvl(comm,0) from emp;
b) nvl2(expr1,expr2,expr3),如果expr1不为null,则用expr2代替,否则用expr3代替
select ename,sal,comm,nvl2(comm,sal+comm,sal) from emp;
c) nullif(expr1,expr2)
case when expr1=expr2 then null else expr1 end
d) case表达式
语法:
case expr when comparison_expr1 then return_expr1
[when comparison_expr2 then return_expr2
[when comparison_exprn then return_exprn
else else_expr]
end
select ename,job,sal,case job when 'CLERK' then 1.10*sal
when 'MANAGER' then 1.20*sal
else sal end "revised_salary"
from emp;
select ename,job,sal,case when job='CLERK' then 1.10*sal
when job='MANAGER' then 1.20*sal
else sal end "revised_salary"
from emp;
四、多表连接
连接类型: 等值连接,不等值连接,外连接,自连接
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
a) 等值连接 equijoins
select ename,dname
from emp,dept
where emp.deptno=dept.deptno;
select ename,dname
from emp,dept
where emp.deptno=dept.deptno
and emp.deptno=30;
select e.ename,d.ename
from emp e,dept d
where e.deptno=d.deptno;
select ename,dname
from emp e,dept d,
where e.deptno=d.deptno
Joining More than Two Tables
hr>select e.LAST_NAME,d.DEPARTMENT_NAME,l.CITY
from employees e,departments d,locations l
where e.department_id=d.department_id and d.location_id=l.location_id
b) 不等值连接 nonequijoins
select ename,sal,grade
from emp e,salgrade s
where e.sal between s.losal and s.hisal
c)外连接 outer joins
展示两表不满足条件的column,+在那边表示多展示此表不满足的column
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column = table2.column(+);
select e.ename,e.deptno,d.dname
from emp e,dept d
where e.deptno(+)=d.deptno;
select ename,dname
from emp,dept
where emp.deptno(+)=dept.deptno
and emp.deptno(+)=30;
发表评论
-
事务隔离级别
2012-07-26 09:16 855事务隔离级别 原文:http://wlh269.iteye. ... -
【转】oracle中的数据库体系结构(总览)
2011-05-08 15:35 873【转】oracle中的数据库体系结构(总览) 原地址:htt ... -
oracle中的SGA和PGA
2011-05-08 11:08 2600oracle中的SGA和PGA 一、SGA(system g ... -
oracle的启动与关闭
2011-05-08 10:21 968oracle的启动与关闭 自定义:Oracle=ins ... -
oracle中的高级查询
2011-04-19 21:50 819oracle中的高级查询 一、集合操作 set operat ... -
oracle中的权限
2011-03-28 12:18 1396oracle中的权限 一、权限 系统权限: 取得操 ... -
oracle数据库中的对表中字段的增删改查
2011-03-27 19:45 4002oracle数据库中的对表中字段的增删改查 本文中的例子 ... -
oracle中的object
2011-03-27 15:24 3436oracle中的object schema 是object ... -
oracle中的视图VIEW
2011-03-27 11:44 824oracle中的视图VIEW 一、VIEW? vi ... -
Oracle中的DDL语句
2011-03-18 21:53 2300Oracle中的DDL语句 一、表格(table ... -
Oracle一些辅助命令
2011-03-18 21:10 776Oracle一些辅助命令 查看当前用户: show ... -
三大范式,小小理解
2011-03-18 20:53 810三大范式,小小理解 1NF:数据库中的表格 ... -
Oracle10g的安装
2011-03-18 20:08 779Oracle10g的安装 一、安装准备 下载o ...
相关推荐
### 数据分析与专题图制作 #### 一、地图数据分析 地图数据分析是GIS(地理信息系统)领域中的一个重要组成部分,主要用于从空间数据中提取有用的信息。在本节中,我们将重点介绍几种常用的数据分析方法,包括统计...
【SQL】SELECT专题。 153 【spark,Hive,Hadoop,yarn】汇总 154 【火花】DataFrame。 155 【spark】sql.functions详解 159 【火花】工程实践 162 【Hive SQL】速查。 173 【火花】模型持久化 173 打包...
对于想要进一步提升Bootstrap技能的开发者,可以参考以下专题教程: - Bootstrap学习教程:掌握Bootstrap的基础用法,包括栅格系统、组件、JavaScript插件等。 - Bootstrap实战教程:通过实际项目加深对Bootstrap的...
### 深入浅出Oracle之DB、PLSQL专题研究 #### 一、特殊值、特殊字段、特殊对象、特殊语句 ##### 1.1 Null值 **说明:** 在Oracle数据库中,`NULL`值代表未知或者缺失的数据。与C语言、Java等编程语言中的`null`...
可以通过执行SELECT VERSION();来获取当前安装的MySQL版本。 14. MySQL存储引擎: MySQL使用存储引擎来定义表的类型,存储机制、锁定级别、索引、功能和性能等各有不同。 15. MySQL驱动程序: MySQL提供多种驱动...
在SQL语言中,用于修改表结构的命令是`...这些是SQL语句专题训练中涉及的一些基础概念和操作,理解并熟练掌握它们对于进行有效的数据库查询和管理至关重要。通过持续的训练和实践,可以提升在SQL方面的技能和效率。
【标题】:“Linq专题源码” 在C#编程领域,LINQ(Language Integrated Query,语言集成查询)是一项强大的功能,它将查询表达式直接整合到C#语法中,极大地简化了数据操作。本专题主要关注LINQ的源码解析,帮助...
面试专题的MySQL部分通常涵盖了数据库设计、查询优化、事务处理、安全性、复制与集群等多个关键领域。以下是一些重要的知识点详解: 1. **数据库设计**: - **ER模型**:实体关系模型是数据库设计的基础,用于描述...
本专题“Excel精讲专题-VBA分支与END语句”深入探讨了VBA中的分支结构和END语句,这两个概念是编写逻辑控制流程的关键元素。 首先,我们来了解一下VBA中的分支结构。分支结构主要用于根据不同的条件执行不同的代码...
在本专题中,我们将探讨 MyBatis 的优势以及如何快速开始使用它。 首先,让我们回顾一下 JDBC 的不足之处。JDBC 在底层并没有集成连接池,这意味着每次执行数据库操作时都需要手动创建和关闭连接,这既耗时又消耗...
执行计划通常由操作符组成,包括SELECT、FROM、WHERE等SQL关键字对应的物理或逻辑操作,例如全表扫描(Full Table Scan)、索引扫描(Index Scan)、连接操作(Join)等。每个操作符都有相应的成本估算,这些成本...
**Linq三层专题练习详解** Linq(Language Integrated Query,语言集成查询)是.NET Framework中的一项强大技术,它为开发者提供了在C#和VB.NET等编程语言中内嵌查询的能力,使得数据操作更加简洁和直观。在这个...
SELECT * FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID; ``` 2. **LEFT JOIN (或 LEFT OUTER JOIN)**: - **定义**:返回左表中的所有行以及右表中匹配的行;如果右表中没有匹配项,则结果为NULL...
对于希望深入了解Bootstrap Select2的读者,推荐以下专题教程: 1. **Bootstrap学习教程**:全面掌握Bootstrap的布局、组件和响应式设计。 2. **Bootstrap实战教程**:通过实际项目加深对Bootstrap的理解。 3. **...
$zhuanti = $empire->fetch1("select ztid, classid from {$dbtbpre}enewsztinfo where id = {$r['id']}"); ``` 2. **判断信息是否关联专题**: 上述查询结果会返回一个关联数组,包含专题ID和类ID。如果信息有...
在SQL Server专题实验4中,我们主要探讨的是“复杂查询”的概念和应用。复杂查询是数据库管理系统中的一个重要组成部分,它涉及到多个表之间的关联、子查询、聚合函数、分组及排序等多个高级查询技术。通过本实验,...
例如,查询course表中开课学期按照升序排列的课程信息,SQL语句为`SELECT * FROM course ORDER BY 开课学期 ASC`。 2. `GROUP BY`子句:用于将查询结果按照指定的字段进行分组,常与聚合函数一起使用,如`COUNT()`,...