Sql语句学习笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

先登陆服务器:telnet 192.168.0.23 公帐号:openlab-open123 tarena-tarena 再进入SQL:sqlplus sd0807/sd0807 帐号:sd0807-密码同样公帐号:openlab-open123

设置环境变量:

ORACLE_SID=oral10g\ --变局部变量

export ORACLE_SID --变全局变量

unset ORACLE_SID --卸载环境变量

ORACLE_HOME=... --安装路径;直接用一句语句也可以,如下

export ORACLE_HOME=/oracledata/.../bin:

一、注意事项:

大小写不敏感,即不区分大小写。提倡关键字大写,便于阅读和调式。

“!”在SQL环境下执行Unix命令。

SQL语句是由简单的英语单词构成;这些英语单词称为关键字/保留字,不做它用。SQL 由多个关键字构成。

SQL语句由子句构成,有些子句是必须的,有些是可选的。

在处理SQL语句时,其中所有的空格都被忽略(空格只用来分开单词,连续多个空格当一个用)。

SQL语句可以在一行上写出,建议多行写出,便于阅读和调试。

多条SQL语句必须以分号分隔。多数DBMS不需要在单条SQL语句后加分号,但特定的DBMS可能必须在单条SQL语句后加分号。

SQL语句的最后一句要以“;”号结束

二、写子句顺序

Select column,group_function

From table

[Where condition]

[Group by group_by_expression]

[Having group_condition]

……

[Order by column]; --最后

三、常用简单语句:

clear screen:清屏

edit:编辑刚才的一句。

desc/describe:(列出所有列名称)

用法:DESCRIBE [schema.]object[@db_link]

dual:亚表,临时用。如:desc dual;/from dual;

rollback:回溯,回溯到上次操作前的状态,把这次事务操作作废,只有一次(DDL和DCL 语句会自动提交,不能回溯)。

可以用commit语句提交,这样就回溯不回了。

set pause on\off :设置分屏(设置不分屏)

set pause "please put an enter key" 且set pause on:设置带有提示的分屏

oerr ora 904 :查看错误

set head off :去掉表头

set feed off :去掉表尾

保存在oracle数据库中的所有操作细节:

spool oracleday01.txt :开始记录

spool off :开始保存细节

四、SELECT语句:选择操作、投影操作。

select:从一个或多个表中检索一个或多个数据列。包含信息:想选择什么表,从什么地方选择。必须要有From子句。(最常用)

当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。

当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。

1、用法:SELECT columns,prod2,prod3<列> FROM Table1,table2<表名> 分号结束

如:select id from s_emp;

select last_name,name from s_emp,s_dept where s_emp.dept_id=s_dept.id;--列表每人所在部门

SELECT * FROM Products; --检索所有列。

数据太多时,最好别使用上句,会使DBMS降低检索和应用程序的性能。(*通配符)

2、对数据类型的列可进行运算(如加减乘除)。

3、对列起别名:有直接起别名,加AS起别名,用双引号起别名等三种方法

(单引号,引起字符串;双引号,引起别名。起别名有符号,或者区分大小写时,必须用双引号)

多表查询时,可给表起别名。(给列起别名,列<空格>列别名;给表起别名,表<空格>表别名;)。

如:Select first_name EMPLOYEES, 12*(salary+100) AS MONEY, manager_id "ID1" From s_emp E;

4、字段的拼接,可用双竖线(双竖线只能用于select语句里)。不同的DBMS可能使用不同的操作符;拼接的字段同样可以起别名。

如:Select first_name ||' '|| last_name || ', '|| title "Employees" From s_emp;

排他锁:Select id,salary From s_emp where id=1 For Update;

可以阻止他人并发的修改,直到你解锁。

如果已有锁则自动退出:Select id,salary From s_emp where id=1 For Update NoWait;

FOR UPDATE :可以再加OF 精确到某格。如:... For Update OF salary ...

注意要解锁。

五、ORDER BY 子句,排序

Order by:按某排序列表(默认升序asc,由低到高;可加desc,改成降序由高到低) 检索返回数据的顺序没有特殊意义,为了明确地排序用SELECT 语句检索出的数据,可使用ORDER BY 子句。

ORDER BY 子句取一个或多个列的名字。

对空值,按无穷大处理(升序中,空值排最后;降序中排最前)。

1、用法:Select prod_id,prod_price,prod_name From Products Order By

相关文档
最新文档