select

十六、mysql 变量

自古美人都是妖i 提交于 2020-04-07 10:04:39
1、系统变量   1) 全局变量   2) 会话变量 2、自定义变量   1) 用户变量   2) 局部变量 一、系统变量   说明:变量由系统提供,不是用户定义,属于服务器层面   注意:如果是全局级别,则需要加 global, 如果是会话级别,则需要家 session, 如果不写,则默认 session 。   使用的语法:     1) 查看所有的系统变量       show global|session variables;     2) 查看满足条件的部分系统变量       show global|session variables like ‘%char%’     3) 查看指定的某个系统变量的值       select @@global|session. 系统变量名     4) 为某个系统变量赋值       a. set global|session. 系统变量名=值       b. set @@global|session. 系统变量名=值 二、自定义变量   说明:变量是用户自定义的,不是系统的   使用步骤:声明、赋值、使用(查看、比较、运算等)   1、用户变量     (1) 作用域:针对于当前会话(连接)有效,同于会话变量的作用域     (2) 声明并初始化(赋值的操作符: = 或 := )       a. set @用户变量名=值;  

IO

吃可爱长大的小学妹 提交于 2020-04-07 09:59:56
本文讨论的背景是Linux环境下的network IO。 本文最重要的参考文献是Richard Stevens的“ UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking ”,6.2节“ I/O Models ”,Stevens在这节中详细说明了各种IO的特点和区别,如果英文够好的话,推荐直接阅读。Stevens的文风是有名的深入浅出,所以不用担心看不懂。本文中的流程图也是截取自参考文献。 五种IO模型 Stevens在文章中一共比较了五种IO Model: blocking IO nonblocking IO IO multiplexing signal driven IO asynchronous IO 由于signal driven IO在实际中并不常用,所以我这只提及剩下的四种IO Model。 再说一下IO发生时涉及的对象和步骤。 对于一个network IO (这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(kernel)。当一个read操作发生时,它会经历两个阶段: 1 等待数据准备 (Waiting for the data to be ready) 2 将数据从内核拷贝到进程中

Oracle数据库总结语法一

一世执手 提交于 2020-04-07 09:32:33
1、创建表 create table "表名"( pid number(20), pname varchar2(10) ) 2、添加一列 alter table "表名" add "列名称" number(1); 性别用0,1代替男女 3、修改列类型 alter table "表名" modify "列名称" char(1); char长度指定的,一直为1 4、修改列名称 alter table "表名" rename column "列名称" to "列名"; 5、删除列 alter table "表名" drop coiumn "列名称" 6、添加记录 insert into "表名" ("列名称","列名称") values("值","值"); commit; 事务提交不能忘 7、查询表记录 select * from "表名" 8、修改记录 update "表名" set "字段名"="值" where "字段名"="值"; commit; 9、删除全部记录 delete from "表名"; 10、删除表结构 drop table "表名"; 11、先删除表,在创建表。(相当于删除全部记录) truncate table "表名"; (数据量大的情况下,尤其是由索引,效率高。索引可以提高查询效率,但是会影响增删改效率) 12、序列:默认从1开始,依次递增(主键赋值使用)

Mysql查询

大城市里の小女人 提交于 2020-04-07 06:59:22
一、简单的查询 我们先看一些简单的查询,数据库导入脚本将在文末贴出: SELECT * FROM t_employee; #查询孙红雷的姓名和薪资 SELECT ename,salary FROM t_employee WHERE ename='孙红雷' #查询孙红雷的姓名和领导编号 SELECT ename,`mid` FROM t_employee WHERE ename='孙红雷' #给查询结果取别名 SELECT ename AS "姓名", salary AS "薪资" FROM t_employee; 二、运算符 1、算数运算符 /* 算术运算符: 加:+ 减:- 乘:* 除:/ 或 div div只保留整数部分 模:% 或 mod */ #查询员工的姓名和薪资 SELECT ename,salary FROM t_employee; #查询员工的姓名和原来的薪资和涨薪1000元后的薪资 SELECT ename,salary,salary + 1000 FROM t_employee; #查询9/4的结果 mysql> SELECT 9/4; +-------+ | 9 / 4 | +-------+ | 2.25 | +-------+ #查询9/4的结果 mysql> SELECT 9 DIV 4; +---------+ | 9 DIV 4 | +-------

Getting distinct rows for overlapping timestamp in SQL Server

冷暖自知 提交于 2020-04-07 06:53:11
问题 I have the following result set which I get from SQL Server: employeeNumber | start_date | start_time | end_date | end_time ---------------+------------+------------+--------------+---------- 123 | 10-03-2020 | 18:13:55 | 10-03-2020 | 22:59:46 123 | 10-03-2020 | 18:24:22 | 10-03-2020 | 22:59:51 123 | 10-03-2020 | 23:24:22 | 10-03-2020 | 23:59:51 123 | 11-03-2020 | 18:25:25 | 11-03-2020 | 20:59:51 123 | 12-03-2020 | 18:40:22 | 12-03-2020 | 22:59:52 For some cases I have multiple rows for the

优化mysql中where or和where in语句的效率

蹲街弑〆低调 提交于 2020-04-07 06:03:56
一、使用union来取代where in: 使用where or语句操作: select * from city where id = 1 or id = 3 or id = 4 输出: 1 广州 3 深圳 4 惠州 explain 结果: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE city ALL PRIMARY NULL NULL NULL 5 Using where 标准使用where in操作: select * from city where id in (1,3,4) 输出: 1 广州 3 深圳 4 惠州 explain 结果: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE city ALL PRIMARY NULL NULL NULL 5 Using where 使用union all操作: SELECT * FROM city where id = 1 union all SELECT * FROM city where id = 3 union all SELECT * FROM city where id = 4 输出: 1 广州 3 深圳 4 惠州

oracle优化之count的优化-避免全表扫描

老子叫甜甜 提交于 2020-04-07 06:00:00
select count(*) from t1; 这句话比较简单,但很有玄机!对这句话运行的理解,反映了你对数据库的理解深度! 建立实验的大表他t1 SQL> conn scott/tiger 已连接。 SQL> drop table t1 purge; 表已删除。 SQL> create table t1 as select * from emp where 0=9; 表已创建。 SQL> insert into t1 select * from emp; 已创建14行。 SQL> insert into t1 select * from t1; 已创建14行。 SQL> / 已创建28行。 SQL> / 已创建56行。 SQL> / 已创建112行。 SQL> / 已创建224行。 SQL> / 已创建448行。 SQL> / 已创建896行。 SQL> / 已创建1792行。 SQL> / 已创建3584行。 SQL> / 已创建7168行。 SQL> / 已创建14336行。 SQL> / 已创建28672行。 SQL> / 已创建57344行。 SQL> commit; 提交完成。 收集统计信息 SQL> execute dbms_stats.gather_table_stats('SCOTT','T1'); PL/SQL 过程已成功完成。 SQL> SET AUTOT

使用Python的Scrapy框架编写web爬虫的简单示例

三世轮回 提交于 2020-04-07 04:53:55
在这个教材中,我们假定你已经安装了Scrapy。假如你没有安装,你可以参考这个 安装指南 。 我们将会用 开放目录项目(dmoz) 作为我们例子去抓取。 这个教材将会带你走过下面这几个方面: 创造一个新的Scrapy项目 定义您将提取的Item 编写一个 蜘蛛 去抓取网站并提取 Items 。 编写一个 Item Pipeline 用来存储提出出来的Items Scrapy由 Python 写成。假如你刚刚接触Python这门语言,你可能想要了解这门语言起,怎么最好的利用这门语言。假如你已经熟悉其它类似的语言,想要快速地学习Python,我们推荐 这种深入方式学习Python 。假如你是新手,想从开始使用Python学习,可以尝试去看看非程序员 Python资源列表 。 创造一个项目 在你要抓取之前,首先要建立一个新的Scrapy项目。然后进去你的存放代码目录,执行如下命令。 scrapy startproject tutorial 它将会创建如下的向导目录: 复制代码 代码如下: tutorial/ scrapy.cfg tutorial/ __init__.py items.py pipelines.py settings.py spiders/ __init__.py ... 这是一些基本信息: scrapy.cfg: 项目的配置文件。 tutorial/:

Oracle11G基本操作

牧云@^-^@ 提交于 2020-04-07 02:38:08
[1].创建表空间 CREATE TABLESPACE SYPRO_201310 DATAFILE 'F:\ORACLE_11G\oradata\orcl\SYPRO_201310.DBF' SIZE 10M AUTOEXTEND ON 在指定的F盘下创建一个名SYPRO_201310.DBF的文件初始空间是10M当空间不足时自动增加 [2].删除表空间同时删除表空间所有硬盘上的物理文件 DROP TABLESPACE SYPRO_201310 INCLUDING CONTENTS AND DATAFILES [3].查看当前用户所有表空间 SELECT * FROM DBA_TABLESPACES [4].创建用户liutao 密码 liutao 默认表空间 SYPRO_201310 临时表空间 TEMP CREATE USER liutao IDENTIFIED BY liutao DEFAULT TABLESPACE SYPRO_201310 TEMPORARY TABLESPACE TEMP [5].用户授权-连接数据库的权限 GRANT CONNECT TO LIUTAO WITH ADMIN OPTION [6].用户授权-数据库管理员DBA角色 GRANT DBA TO LIUTAO WITH ADMIN OPTION -- 创建表空间 CREATE

SQL count(*) 和count(1)的区别

拜拜、爱过 提交于 2020-04-07 02:01:12
开发中经常会使用这两个聚合函数,作用都是用来统计记录行,今天查找资料发现,其实这两个函数并没有区别, 实践才是检验的标准,首先看执行计划(表是我自己建立的): 可以看到,两个执行计划完全一样,后来查找资料,有人用模拟百万的数据重新来模拟,发现两者的速度几乎没有,select count(1)稍微比select count(*)快不超过0.5秒,数据量越大的时候,反而有时候select count(*)更快,可见现在数据库的版本对select count(*)已经优化很好了,在实际开发中选择其中一种都可以。 来源: oschina 链接: https://my.oschina.net/u/3497902/blog/2208655