1.Oracle SQL Developer建立连接
1)打开新建连接后
主机名:要访问的数据库所在的主机上的IP地址
端口号:数据库应用的端口号,确认是oracle应用
1521:Oracle
SID:应用服务器中的每个数据库都有一个SID来唯一标识,相当于一个
SID就代表oracle下的某一个数据库
一台机器上的sql developer和远程的机器上的数据库应用通信,依靠的是TCP/IP协议,
ip协议里:ip地址 可以标识机器
tcp:port 端口号 机器上的哪个应用程序(由DBA告知)
连接名:随便定义的有意义的名字
2.常见错误信息:
1)invalid identifier:无效列名 --> 列名写错了
2)table or view dose not exists ---> 表名写错了
3.空值(null)的处理函数nvl(p1,p2):如果p1 is null 则return p2 否则 return p1;
一般用于对空值的处理,一般转化为0
注:p1和p2的数据类型必须一致!
4.‘’用于字符串,且大小写敏感,“”一般用于给列起别名的,而且特殊字符和大小写完全匹配!
5.select子句:投影操作(列名),列表达式,函数, 常量值(每一行输出一次)
若只想查询一个常量值,则用from dual(只包含了一行一列的表),每一行
都输出一次没什么实际意义
6.列名的拼接“||”
select 列名1||列名2... from 表明
如果拼接常量字符的话,直接写
select real_name||','||idcard_no from client;
怎么表示单引号本身:‘’(两个单引号表示单引号),所以表示一个单引号的常量字符串的话,用‘’‘’
第一个和第四个表示字符串常量的界定符,中间两个‘’就表示‘
7.运算符:
1)算术运算符“+ - * /”和函数用于select后和where后来表示某个列的组合
注:1.select选择某个经一系运算后得到的列,并且可以为这个列取别名;where说某个运算后得到的列满足什么什么条件)
2.运算符表达式执行次数:有多少条符合条件的记录表达式就会执行多少次,即使有空值null,
只要有空值null,运算结果就为null,如果想正常运算,需要用到nvl函数
2)条件运算符 (not)between...and... (两个区间都是闭区间) (not)in (not)like is (not)null
注:若是通配符“%” “_”本身,需要使用escape定义
where 列名 like 'h\_' escape '\'
8.distinct:消除重复行
select distinct 列名
如果多个列名,则多个列名联合唯一
如:每台服务器哪些天开通了远程登录业务
select distinct unix_host, create_date from service;
注:如果一列中有多个null值,只保留一列!
9.客服端和数据库服务器端建立连接,服务器端会建立一个服务进程(Server Process)
SQL语句的执行过程,如:处理一条select语句
step1,分析语句
1)搜索是否有相同的语句
2)检查语法、表名、权限
3)在检查的过程中给对象加锁,生成执行计划
step2,绑定变量
step3,执行语句
step4,获取数据,数据返回给用户进程
一个sql语句到服务器了,服务器首先检查有没有一模一样的语句,如果有,直接获得执行计划
分析语句的前两个步骤就省掉了;否则,将sql语句放入内存中,执行以上4个步骤
所以为了提高系统的性能,以及减少数据库服务器的压力,我们有select规范
1)打开新建连接后
主机名:要访问的数据库所在的主机上的IP地址
端口号:数据库应用的端口号,确认是oracle应用
1521:Oracle
SID:应用服务器中的每个数据库都有一个SID来唯一标识,相当于一个
SID就代表oracle下的某一个数据库
一台机器上的sql developer和远程的机器上的数据库应用通信,依靠的是TCP/IP协议,
ip协议里:ip地址 可以标识机器
tcp:port 端口号 机器上的哪个应用程序(由DBA告知)
连接名:随便定义的有意义的名字
2.常见错误信息:
1)invalid identifier:无效列名 --> 列名写错了
2)table or view dose not exists ---> 表名写错了
3.空值(null)的处理函数nvl(p1,p2):如果p1 is null 则return p2 否则 return p1;
一般用于对空值的处理,一般转化为0
注:p1和p2的数据类型必须一致!
4.‘’用于字符串,且大小写敏感,“”一般用于给列起别名的,而且特殊字符和大小写完全匹配!
5.select子句:投影操作(列名),列表达式,函数, 常量值(每一行输出一次)
若只想查询一个常量值,则用from dual(只包含了一行一列的表),每一行
都输出一次没什么实际意义
6.列名的拼接“||”
select 列名1||列名2... from 表明
如果拼接常量字符的话,直接写
select real_name||','||idcard_no from client;
怎么表示单引号本身:‘’(两个单引号表示单引号),所以表示一个单引号的常量字符串的话,用‘’‘’
第一个和第四个表示字符串常量的界定符,中间两个‘’就表示‘
7.运算符:
1)算术运算符“+ - * /”和函数用于select后和where后来表示某个列的组合
注:1.select选择某个经一系运算后得到的列,并且可以为这个列取别名;where说某个运算后得到的列满足什么什么条件)
2.运算符表达式执行次数:有多少条符合条件的记录表达式就会执行多少次,即使有空值null,
只要有空值null,运算结果就为null,如果想正常运算,需要用到nvl函数
2)条件运算符 (not)between...and... (两个区间都是闭区间) (not)in (not)like is (not)null
注:若是通配符“%” “_”本身,需要使用escape定义
where 列名 like 'h\_' escape '\'
8.distinct:消除重复行
select distinct 列名
如果多个列名,则多个列名联合唯一
如:每台服务器哪些天开通了远程登录业务
select distinct unix_host, create_date from service;
注:如果一列中有多个null值,只保留一列!
9.客服端和数据库服务器端建立连接,服务器端会建立一个服务进程(Server Process)
SQL语句的执行过程,如:处理一条select语句
step1,分析语句
1)搜索是否有相同的语句
2)检查语法、表名、权限
3)在检查的过程中给对象加锁,生成执行计划
step2,绑定变量
step3,执行语句
step4,获取数据,数据返回给用户进程
一个sql语句到服务器了,服务器首先检查有没有一模一样的语句,如果有,直接获得执行计划
分析语句的前两个步骤就省掉了;否则,将sql语句放入内存中,执行以上4个步骤
所以为了提高系统的性能,以及减少数据库服务器的压力,我们有select规范
以上步骤都是由Server Process完成的。