select函数

test1

穿精又带淫゛_ 提交于 2019-11-28 00:15:18
---视图 ---视图的概念:视图就是提供一个查询的窗口,所有数据来自于原表。 ---查询语句创建表 create table emp as select * from scott.emp; select * from emp; ---创建视图【必须有dba权限】 create view v_emp as select ename, job from emp; ---查询视图 select * from v_emp; ---修改视图[不推荐] update v_emp set job='CLERK' where ename='ALLEN'; commit; ---创建只读视图 create view v_emp1 as select ename, job from emp with read only; ---视图的作用? ---第一:视图可以屏蔽掉一些敏感字段。 ---第二:保证总部和分部数据及时统一。 ---索引 --索引的概念:索引就是在表的列上构建一个二叉树 ----达到大幅度提高查询效率的目的,但是索引会影响增删改的效率。 ---单列索引 ---创建单列索引 create index idx_ename on emp(ename); ---单列索引触发规则,条件必须是索引列中的原始值。 ---单行函数,模糊查询,都会影响索引的触发。 select * from emp

Hive 函数(六)

风流意气都作罢 提交于 2019-11-27 22:58:05
Hive函数 ​ Hive中提供了非常丰富的运算符和内置函数支撑,具体操作如下: 1.内置运算符 1.1关系运算符 运算符 类型 说明 A = B 所有原始类型 如果A与B相等,返回TRUE,否则返回FALSE A == B 无 失败,因为无效的语法。 SQL使用”=”,不使用”==”。 A <> B 所有原始类型 如果A不等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。 A < B 所有原始类型 如果A小于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。 A <= B 所有原始类型 如果A小于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。 A > B 所有原始类型 如果A大于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。 A >= B 所有原始类型 如果A大于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。 A IS NULL 所有类型 如果A值为”NULL”,返回TRUE,否则返回FALSE A IS NOT NULL 所有类型 如果A值不为”NULL”,返回TRUE,否则返回FALSE A LIKE B 字符串 如 果A或B值为”NULL”,结果返回”NULL”

SQL查询语句大全(转)

半世苍凉 提交于 2019-11-27 20:33:26
转自https://www.cnblogs.com/chenglc/p/8421492.html 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注

oracle使用sum函数后报错:无效的数字

雨燕双飞 提交于 2019-11-27 17:32:23
oracle SQL语句报错后,没有说具体行数报错,一般就是查询时候,数据有问题。 使用sum函数,例如: select sum(a.score) from student a 语句显然没问题,但是执行后,报无效的数字,这时就可以用正则表达式去找具体是哪行数据有问题。 select * from student where not regexp_like(a.score,'^[[:digit:]]+\.{0,1}[[:digit:]]*$') 找到有问题的数据,处理了就可以了。 来源: CSDN 作者: 在下头很铁 链接: https://blog.csdn.net/qq_29329521/article/details/85048581

SQL Injection(Blind)

為{幸葍}努か 提交于 2019-11-27 16:27:01
SQL Injection(Blind),即SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知,因此盲注的难度要比一般注入高。目前网络上现存的SQL注入漏洞大多是SQL盲注。 0x01分类 Booleanbase(基于布尔) 布尔很明显Ture跟Fales,也就是说它只会根据你的注入信息返回Ture跟Fales,也就没有了之前的报错信息。 Timebase(基于时间) 界面返回值只有一种,true 无论输入任何值 返回情况都会按正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确 0x02常用函数 1234567 substr() substr(string string,num start,num length);string为字符串;start为起始位置;length为长度。count() 计数函数 count()函数是用来统计表中记录的一个函数,返回匹配条件的行数select count(*) from mysql.user where id =1ascii()返回对应字符的十进制值length() 返回字符串长度left() left(str, length),即:left(被截取字符串, 截取长度)

pdo常用的sql写法

烈酒焚心 提交于 2019-11-27 16:18:59
 mysql_*函数已经过时,相当一段时间以来,mysql_*函数在其他SQL数据库编程接口方面已经有所差别;它不支持预处理,存储过程,事务等一些现代数据库设计思想,SQL语句字符串转义函数 mysql_real_escape_string() 和 拼接SQL语句的编程方法 已经过时并且很容易出错。最近一段时间里,它缺乏开发者的关注,缺少维护将可能导致一些安全问题不能被即时修复,或者在适配新版本的MySQL的时候不能 正常工作,这成为mysql_*函数面临的的另一个问题。PHP社区最近也对mysql_*函数给出不建议使用的建议,也有可能在未来的版本中最终被弃用 (不过不用过于担心,这可能还需要很长一段时间)。         PDO拥有更好的编程接口,你可以使用它写出更加简洁,高效,安全的代码。PDO还为不同的SQL数据库提供了不同的驱动,方便你 使用新的数据库而不用再学习不同的编程接口。与拼接SQL语句构造查询语句不同,绑定参数可以简洁方便的构造出更加安全的查询语句,使用绑定参数的方法在 多次相似语句查询(仅仅某个参数不同)中也可以提高不少性能。PDO在错误处理方面也提供了多种方法。mysql_*函数缺乏一致的处理,与PDO的异常 模式相比,或者说没有处理异常,使用PDO,你可以得到一致的错误处理,这将节省您大量的时间来跟踪问题。         在当前的PHP版本中

MySQL数据库

家住魔仙堡 提交于 2019-11-27 15:58:41
Mysql 数据库 【教学内容】 1、 数据库介绍 & 安装 2、创建库和表 3、简单增删改查语句 4、Mysql 函数 5、表的设计和约束 6、多表查询 【教学总结】: 【第一阶段】 【目标:数据库介绍 & 安装】 1 、数据库概述 在前期学习的过程中,数据基本都保存 xml 或者普通的文件中。在真实企业级开发数据,数据都需要保存专业的软件中,这些软件就是数据库软件。 数据库软件不需要我们去研发,由专门的数据库厂商提供。 常用的数据库软件: Oracle : Oracle 数据库。甲骨文公司,专门数据库厂商,收购 BEA 、 SUN 、 MySQL ------- 收费 大型数据库,用于任何系统任何平台。 IBM : BD2 数据库。 IBM 数据库产品,大型收费数据库 websphere 服务器一起使用。 Mysql 数据库,早期由瑞典一个公司开发的,后期被 sun 公司收购,随着 sun 公司的被 Oracle 收购, Mysql 也成了 Oracle 公司的产品。 Microsoft : Sqlserver 数据库。微软公司数据库产品,收费中等规模数据库 ,操作系统要求是 windows 结合 .net 一起使用。 Sybase : Sybase 数据库,中等规模数据库。 Java 开发者主要使用 MySQL 、 Oracle 、 DB2 三种数据库。 2 、什么数据库

T-SQL编程基础

前提是你 提交于 2019-11-27 12:46:09
T-SQL编程基础 T-SQL语言的组成 T-SQL语言是具有强大查询功能的数据库语言,除此以外,T-SQL还可以控制DBMS为其用户提供的所有功能,主要包括如下: 数据定义语言(DDL,Data Definition Language) SQL让用户定义存储数据的结构和组织,以及数据项之间的关系。 数据操纵语言(DML,Data Manipulation Language) SQL允许用户或应用程序通过添加新数据、删除旧数据和修改以前存储的数据对数据库进行更新。 数据控制语言(DCL,Data Control Language) 可以使用SQL来限制用户检索、添加和修改数据的能力,保护存储的数据不被未授权的用户所访问。 数据检索语言 SQL允许用户或应用程序从数据库中检索存储的数据并使用它。 数据共享 可以使用SQL来协调多个并发用户共享数据,确保他们不会相互干扰。 数据完整性 SQL在数据库中定义完整性约束条件,使它不会由不一致的更新或系统失败而遭到破坏 因此,T-SQL是一种综合性语言,用来控制并与数据库管理系统进行交互作用。T-SQL是数据库子语言,包含大约40条专用于数据库管理任务的语句。 数据操作类SQL语句 数据定义类SQL语句 数据控制类SQL语句* 事务控制类SQL语句* 程序化SQL语句* T-SQL语句结构 如何书写T-SQL语句 每条SQL语句均由一个谓词

MySQL 索引选择原则

自古美人都是妖i 提交于 2019-11-27 11:42:22
目的 MySQL 查询优化器是基于代价( cost-based )的查询方式。因此,在查询过程中,最重要的一部分是根据查询的 SQL 语句,依据多种索引,计算查询需要的代价,从而选择最优的索引方式生成查询计划。 然而,在分析 MySQL 查询优化器过程中,是以查询优化器主线的原则进行研究,而忽略了很多细节的内容。因此,对 MySQL 索引选择进行进一步的研究和分析,给出创建和使用索引的规则,从而有助于分析 SQL 查询。 设计 设计原则主要依据为尽可能的测试索引,而不考虑索引的合理性。一方面可以更加全面的测试在多种索引存在的情况下,查询优化器是如何进行选择的。另一方面可以根据选择索引的原则,评估索引的合理性。 1 、数据表设计 数据表设计如下所示,其中 students_origin 表中只有主键索引, students 表设计主键索引( Primary Key )、唯一索引( Unique Key )、 B+ 索引、联合索引等。 点击( 此处 )折叠或打开 CREATE TABLE `students_origin` ( `id` int ( 11 ) NOT NULL , `name` varchar ( 30 ) DEFAULT NULL , `age` int ( 11 ) DEFAULT NULL , `major` varchar ( 20 ) DEFAULT NULL

MySQL存储过程详解(正文)

若如初见. 提交于 2019-11-27 11:26:31
我们常用的操作数据库语言 SQL 语句在执行的时候需要要先编译,然后执行,而存储过程( Stored Procedure )是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有 SQL 语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。 存储过程通常有以下优点: (1). 存储过程增强了 SQL 语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2). 存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的 SQL 语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 (3). 存储过程能实现较快的执行速度。如果某一操作包含大量的 Transaction-SQL 代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。而批处理的