007_01(编写基本的SQL SELECT语句)

基本sql语句:
select */列/表达式/别名/distinct from table;
select 后面跟 */列/表达式/别名/distinct
 select 确定那些列
 from 确定哪张表
在语法中:
 select   是一个或多个字段的列表
 *   选择所有的列
 distinct 禁止重复
 表达式  选择指定的字段或表达式
 alias  别名
 from table 指定包含列的表

选择指定的列:
 select ename,sal from emp;
 
写SQL语句:
 SQL语句大小写不敏感,
 SQL语句以分号结束,
 回车执行(没有结束时回车时只是换行,不能执行)
 关键字不能简写或分开拆行字句通常放在不同的行(SQL语句可以写成一行或多行)
 缩进用于增强可读性
 关键字一般用大写输入,所有其他的名字和列用小写输入
 
尽管在 iSQL*Plus 中,在子句的最后,分号(;)不是必须的,但还是推荐使用。在其他环境下,例如,PL/SQL程序,需要在每条语句的结尾加一个分号

列标题默认属性:
iSQL*Plus:
 - 默认列标题位置:居中、大写
SQP*Plus:
 - 字符和日期列标题位置居左
 - 数字列标题居中
 - 默认列标题显示:大写
 
算术表达式:
用算术运算符创建数字和日期数据的表达式:
 *  /  +  -  (运算符的优先级:)
 只能对 date 和 timestamp 数据类型使用 + 和 - 操作。
使用算术运算符:
 select ename,sal,sal+100 from emp;
 select ename,sal,12*sal+100 from emp;
 select ename,sal,12*(sal+100) from emp;

定义空值: 
 null 是一个未分配的、未知的,或不适合的值.通常跟nvl(xx,0) 连用
 null 不是0,也不是空格。(0是一个数字,而空格是一个字符)
 select ename,sal,comm from emp;
 select ename,sal,comm,sal+comm from emp; 
 select ename,sal,comm,sal+nvl(comm,0) from emp;
 如果一行中的某个列缺少数据值,该值被置为null,或者说包换一个空。
 任何数据类型的列都可以包含空。可是,某些约束如: not null 和 primary key 放置在劣种使用空。
 null与任何数相运算都得空。
 
定义列别名:
 改变列标题的名字
 可用于计算结果
 紧跟在列名后米娜 - 在列名和别名之间可以跟选项 AS 关键字
 如果别名中包含空格、特殊字符、大小写敏感,要求用双引号 ""
 select ename,sal,comm,sal+comm as total from emp;
 select ename,sal,comm,sal+comm total from emp;
 select ename,sal,comm,sal+nvl(comm,0) as "total_sal" from emp;
 select ename,sal,comm,sal+nvl(comm,0)  "total sal" from emp;
 
连字运算符:
 连接列或者字符串到其他的列
 用两个竖线表示 (||)
 构造一个字符表达式的合成列
 select ename||empno as "name_ID" from emp;
 
文字字符串:
 文字字符串是包换在select 列表中的一个字符串,一个数字或者一个日期
 日期和字符的文字字符串值必须用单引号括起来(数字不需要)
 每个文字字符串在每行输出一次
 select ename || ': salary= ' || job as "empDetails" from emp;
 
相同的行:
 select 默认显示所有的行,包括相同的行
 select deptno from emp;
 select distinct deptno from emp; (处去相同的行)
 
SQL 和 iSQL*Plus 交互作用:
 SQL 是从一个工具或应用程序与Oracle服务器通信的一种命令语言,Oracle SQL包含许多扩展。
  能够被一个用户范围使用,包括那些有一点或根本没有编程经验的人
  是一种非过程语言
  减少创建和维护系统所需的时间
  是一种类似英语的语言 (不能缩写)
 iSQL*Plus 是一个Oracle工具,用来识别并发送SQL语句到Oracle服务器执行。(iSQL*Plus有它自己的命令语言)
  从浏览器访问:例如:http://192.168.1.7:5560/isqlplus/
  接收语句的输入
  提供联机编辑修改SQL语句 (如果命令长于一行,用破折号 - 折行)
  控制环境设置 (可以缩写)
  格式化查询结果到一个基本的报告中
  适用于访问本地和远程数据库
  处理集中在服务器上,不在客户机上实现
  启用时必须打开监听服务
  
iSQP*Plus 概览:
 在登录进入iSQP*Plus后,你能够;
  。描述表结构
  。编辑SQL语句(增删查改,格式化,计算....)
  。从iSQP*Plus中执行SQL
  。保存SQL语句到文件中,或者添加SQL语句到文件中 (save d:\test.txt)
  。执行保存到文件中的语句 (.  /  run)
  。从文本文件中装载命令到iSQP*Plus编辑窗口中
 登录iSQP*Plus:
  打开浏览器,输入:http://192.168.1.7:5560/isqlplus/
  iSQP*Plus的环境的URL地址可以在:E:\oracle\product\10.2.0\db_1\install\portlist.ini
  默认文件大致都为:
    iSQL*Plus HTTP 端口号 =5560
    Enterprise Manager Console HTTP 端口 (orcl) = 1158
    Enterprise Manager 代理端口 (orcl) = 3938
 
 显示表结构: 
  select * from tab;
  desc emp;
 
 数据类型描述:
  number(p,s)  数字值,P是最大数字数目,s是小数点右边的数字
  varchar2(s)  最大长度为 s 的可变成都字符值
  date   在 BC4712年1月1日到 AD9999年12月31日之间的日期和时间
  char(s)   长度为 s 的固定长度字符值
 
如果在 desc tablename 中的列顺序和在select * from tablename 中的顺序相同。列的显示顺序是创建表时列的定义顺序。
 
------------------------------------------------------------
小结:
 在本课中,应该已经学会如何:
 写一个select 语句,实现:
  从一个表中返回所有行和列
  从一个表中返回指定的列
  使用列别名给列标题以描述
 使用 iSQP*Plus 环境写、保存和执行SQL语句和iSQP*Plus命令
------------------------------------------------------------- 

练习:

 打开“开始”--“运行”--“cmd”:
 sqlplus sys/oracle as sysdba  (登录到数据库)
 show user       (显示当前用户)
 alter scott identified by tiger account unlock;  (为scott用户解锁)
 exit  (退出)
 sqlplus scott/tiger    (用scott用户登录)
 select * from tab;    (查看表清单)
 desc dept;      (查看dept表结构)
 select * from dept;
 set linesize 120    (设置行大小)
 select * from emp;
 select ename,sal,comm from emp;
 select ename,sal,comm,sal+comm as total from emp;
 select ename,sal,comm,sal+nvl(comm,0) as "total sal" from emp;
 select ename,deptno from emp order by deptno;
 select distinct deptno from emp;
 
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21021875/viewspace-621692/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21021875/viewspace-621692/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值