sql语言

oracle字符集查看修改

和自甴很熟 提交于 2020-04-07 13:21:06
一、什么是 Oracle 字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响Oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language: 指定服务器消息的语言, 影响提示信息是中文还是英文 Territory: 指定服务器的日期和数字格式, Charset: 指定字符集。 如:AMERICAN _ AMERICA. ZHS16GBK 从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 二.字符集的相关知识: 2.1 字符集 实质就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。Oracle数据库最早支持的编码方案是US7ASCII。 Oracle的字符集命名遵循以下命名规则: <Language><bit size>

pl/sql

老子叫甜甜 提交于 2020-04-06 10:52:33
一、pl/sql编程语言 --复合索引触发规则,复合索引第一列位有限检索列 --必须包含优先检索列中的值,才会触发 1.声明方法 declare i number(10) :=10; s varchar2(10) :='小红'; ena emp.ename%type; --引用型的变量 emprow emp%rowtype;--记录型变量 begin dbms_output.put_line(i); dbms_output.put_line(s); select ename into ena from emp where empno=7788; dbms_output.put_line(ena); select * into emprow from emp where empno=7788; dbms_output.put_line(emprow.ename || '工作为' || emprow.job); end; 2.pl/sql中的if判断 declare i number(3) :=&i; -- &i输入一个数 begin if i<18 then dbms_output.put_line('未成年'); elsif i<40 then dbms_output.put_line('成年人'); else dbms_output.put_line('老年人'); end if

web开发中防止SQL注入

泪湿孤枕 提交于 2020-04-05 23:04:52
web开发中防止SQL注入 一、SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。 二、SQL注入攻击的总体思路 1.寻找到SQL注入的位置 2.判断服务器类型和后台数据库类型 3.针对不同的服务器和数据库特点进行SQL注入攻击 三、SQL注入攻击实例 比如在一个登录界面,要求输入用户名和密码: 可以这样输入实现免帐号登录: 用户名: ‘or 1 = 1 – 密 码: 点登陆,如若没有做特殊处理,那么这个非法用户就很得意的登陆进去了.(当然现在的有些语言的数据库API已经处理了这些问题) 这是为什么呢? 下面我们分析一下: 从理论上说,后台认证程序中会有如下的SQL语句: String sql = "select * from user_table where username= ' "+userName+" ' and password=' "+password+" '"; 当输入了上面的用户名和密码,上面的SQL语句变成: SELECT * FROM user_table WHERE username= '’or 1 = 1 -- and password='’ """ 分析SQL语句: 条件后面username=”or 1=1 用户名等于 ” 或1=1

Sphinx以及coreseek的安装及使用 .No1

和自甴很熟 提交于 2020-04-04 06:39:31
检索结构 php -> sphinx -> mysql 非结构化数据又叫全文数据,非固定长度字段例如文章标题搜索这类适用sphinx 全文数据搜索: 顺序扫描 : 如like查找 索引扫描 : 把非结构化数据中的内容提取出来一部分重新组织,这部分数据就叫做索引 全文检索分为两个过程 1.创建索引 2.搜索索引 创建索引: sphinx通过语言处理组件会把搜索语句中的标点符号,语气助词给过滤掉,然后处理完毕后会 分析出一些词语,传给索引组件,然后排序去除重复词语. 搜索索引: 搜索关键字 提交 -> sphinx 分析出文档ID -> mysql通过ID查询数据并返回 中文分词需要coreseek coreseek 支持中文的全文检索引擎 sphinx的安装 下载源码包 进行源码安装 ./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql make && make install sphinx 中重要的三个命令(bin目录下) Indexer 创建索引命令 Searchd 启动进程命令 Search 命令行搜索命令 配置sphinx cd /usr/local/sphinx/etc cp sphinx.conf.dist sphinx.conf vi sphinx.conf 配置文件

sql语句性能优化

社会主义新天地 提交于 2020-04-03 21:37:55
面试的时候被面试官问到sql语句的性能优化,回来百度才发现我了解的那些真的是凤毛麟角,废话不多说,上干货: 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。 3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。 4,应尽量避免在 where 子句中使用 or 来连接条件, 否则将导致引擎放弃使用索引而进行全表扫描, 可以 使用UNION合并查询: select id from t where num=10 union all select id from t where num=20 5,in 和 not in 也要慎用,否则会导致全表扫描,对于连续的数值,能用 between 就不要用 in 了:Select id from t where num between 1 and 3 6,下面的查询也将导致全表扫描:select id from t where name like ‘%abc%’ 或者select id from t

使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库

三世轮回 提交于 2020-04-03 04:06:28
本文转自CSDN博客, http://blog.csdn.net/helifengwell/archive/2010/08/18/5820434.aspx 1,先到Oracle站点下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 依据你的操作系统选择不同的Instant Client版本号 下载回是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的文件夹就可以.比如:D:/instantclient_11_2 2.在D:/instantclient_11_2文件夹下新建文件夹network,在network文件夹下再新建admin文件夹,在admin文件夹下新建文件tnsnames.ora,使用文本编辑器打开写入例如以下内容: MWDB= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = MWDB) ) ) 第一个黄色字块:表示定义远程server的在本地主机名 第二个黄色字块

ORCALE 相关操作

◇◆丶佛笑我妖孽 提交于 2020-04-02 15:12:24
卸载: 1,关闭oracle所有的服务。 打开注册表:regedit 打开路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 删除该路径下的所有以oracle开始的服务名称 2,打开注册表 路径: HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 删除该oracle目录 3,删除注册表中关于oracle的事件日志注册项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\ 删除以oracle开头的所有内容 4,删除环境变量path中关于oracle的内容。 重新启动操作系统 删除Oracle_Home下的所有数据 删除C:\Program Files下oracle目录 5,删除开始菜单下oracle项 C:\Documents and Settings\All Users\「开始」菜单\程序\Oracle - Ora92 --Orcale启动与关闭 ------------------------------------------------------ --启动oracle数据库服务 net start oracleserviceora92 --启动oracle监听服务 lsnrctl start

Oracle学习时关于SQL语言的总结

情到浓时终转凉″ 提交于 2020-03-31 04:10:21
1、查询dept表的结构 在命令窗口输入:desc dept; 2、检索dept表中的所有列信息 select * from dept 3、检索emp表中的员工姓名、月收入及部门编号 select ename "员工姓名",sal "月收入",empno "部门编号" from emp 4、检索emp表中员工姓名、及雇佣时间 日期数据的默认显示格式为“DD-MM-YY",如果希望使用其他显示格式(YYYY-MM-DD),那么必须使用TO_CHAR函数进行转换。 select ename "员工姓名", hiredate "雇用时间1",to_char(hiredate,'YYYY-MM-DD') "雇用时间2" from emp 注意:第一个时间是日期类型的,在Oracle的查询界面它的旁边带有一个日历。第二个时间是字符型的。不要将YYYY-MM-DD使用双引号 5、使用distinct去掉重复行。 检索emp表中的部门编号及工种,并去掉重复行。 select distinct deptno "部门编号",job "工种" from emp order by deptno 6、使用表达式来显示列 检索emp表中的员工姓名及全年的月收入 select ename "员工姓名", (sal+nvl(comm,0))*12 "全年收入" from emp 注意:防止提成comm为空的操作

SQL DML数据操作语言 教程

杀马特。学长 韩版系。学妹 提交于 2020-03-30 08:54:04
数据操作语言(Data Manipulation Language)用于操作表中的数据,包括插入(INSERT)、修改(UPDATE)、删除(DELETE)以及合并(MERGE)。虽然我们使用最多的是查询语句,但生成数据是进行查询分析的前提;应用程序通常也需要使用 DML 语句进行业务数据的操作。 SQL 数据操作语言 SQL DML增加数据 SQL DML修改数据 SQL DML删除数据 SQL DML合并数据 来源: https://www.cnblogs.com/numpycomcn/p/12596451.html

PL/SQL编程基础——PL/SQL简介

时光总嘲笑我的痴心妄想 提交于 2020-03-30 02:36:04
课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1、 了解PL/SQL的主要特点 2、 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言。 SQL与编程语言之间的不同之处在于,SQL没有变量,SQL没有流程控制(分支、循环)。而PL/SQL是结构化的和过程化的结合体,而且最为重要的是,在用户执行多条SQL语句时,每一条SQL语句都是逐一的发送给数据库,而PL/SQL可以一次性将多条SQL语句一起发送给数据库,减少网络流量问题。     SQL执行 PL/SQL执行 PL/SQL语法结构 语法: DECLARE - 声明部分,例如。定义变量、常量、游标。 BEGIN - 程序编写、SQL语句 EXECEPTION - 处理异常 END: / 说明: 声明部分(DECLARE) :包含变量定义、用户定义的PL/SQL类型、游标、引用的函数或者过程。 执行部分(BEGIN) :包含变量赋值、对象初始化、条件结构、迭代结构、嵌套的PL/SQL匿名块,或者是对局部或者时存储PL/SQL命名块的调用。 异常部分:(EXECEPTION) :包含错误处理语句,该语句可以像执行部分一样所有使用项。 结束部分(END) :程序执行到END表示结束,分号用于结束匿名块,而正斜杠(/