Browse Month: 五月 2016

MySQL 命令笔记

usage:

基础

登录到MySQL

mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p

DISTINCT

关键词 DISTINCT 用于返回唯一不同的值。

SELECT DISTINCT 列名称 FROM 表名称

INSERT INTO

INSERT INTO 表名称 VALUES (值1, 值2,....)

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....), (值1, 值2,....), (值1, 值2,....)

Update

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

DELETE

DELETE FROM 表名称 WHERE 列名称 = 值

高级

limit

select 列名称 from 表名称 where 条件 limit 字段数

select 列名称 from 表名称 where 条件 limit 起始位置, 字段数

LIKE

通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist] 或 [!charlist] 不在字符列中的任何单一字符

IN

IN 操作符允许我们在 WHERE 子句中规定多个值。

JOIN

  • JOIN: 如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行

UNION

合并两个或多个 SELECT 语句的结果集

CREATE

建库

CREATE DATABASE database_name

建表

约束 Constraints

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK 用于限制列中的值的范围
  • DEFAULT

CREATE INDEX

创建一个简单的索引

DROP

DROP INDEX

DROP INDEX index_name ON table_name

删除表

DROP TABLE 表名称

删除数据库

DROP DATABASE 数据库名称

TRUNCATE

删除表中的数据

TRUNCATE TABLE 表名称

ALTER

用于在已有的表中添加、修改或删除列

ALTER TABLE

添加列

删除列

改变数据类型

AUTO_INCREMENT

可配置自增长起始值和间隔值

VIEW

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段

视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据

NULL

NULL 值是遗漏的未知数据

使用 IS NULL 和 IS NOT NULL 操作符来区分NULL值

数据类型

Text

  • CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。
  • VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。
  • TINYTEXT 存放最大长度为 255 个字符的字符串。
  • TEXT 存放最大长度为 65,535 个字符的字符串。
  • BLOB 用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字节的数据。
  • MEDIUMTEXT 存放最大长度为 16,777,215 个字符的字符串。
  • MEDIUMBLOB 用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。
  • LONGTEXT 存放最大长度为 4,294,967,295 个字符的字符串。
  • LONGBLOB 用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。
  • ENUM(x,y,z,etc.) 允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。
  • SET 与 ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值。

Number

  • TINYINT(size) -128 到 127 常规。0 到 255 无符号。在括号中规定最大位数。
  • SMALLINT(size) -32768 到 32767 常规。0 到 65535 无符号。在括号中规定最大位数。
  • MEDIUMINT(size) -8388608 到 8388607 普通。0 to 16777215 无符号。在括号中规定最大位数。
  • INT(size) -2147483648 到 2147483647 常规。0 到 4294967295 无符号。在括号中规定最大位数。
  • BIGINT(size) -9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号。在括号中规定最大位数。
  • FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
  • DOUBLE(size,d) 带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
  • DECIMAL(size,d) 作为字符串存储的 DOUBLE 类型,允许固定的小数点。

Date

  • DATE() 日期。格式:YYYY-MM-DD
  • DATETIME() 日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS
  • TIMESTAMP() 时间戳。TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS
  • TIME() 时间。格式:HH:MM:SS 注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’
  • YEAR() 2 位或 4 位格式的年。

函数

  • AVG(column) 返回某列的平均值
  • COUNT(column) 返回某列的行数(不包括 NULL 值)
  • COUNT() 返回被选行数
  • MAX(column) 返回某列的最高值
  • MIN(column) 返回某列的最低值
  • SUM(column) 返回某列的总和
  • UCASE(c) 将某个域转换为大写
  • LCASE(c) 将某个域转换为小写
  • MID(c,start[,end]) 从某个文本域提取字符
  • LEN(c) 返回某个文本域的长度
  • INSTR(c,char) 返回在某个文本域中指定字符的数值位置
  • LEFT(c,number_of_char) 返回某个被请求的文本域的左侧部分
  • RIGHT(c,number_of_char) 返回某个被请求的文本域的右侧部分
  • ROUND(c,decimals) 对某个数值域进行指定小数位数的四舍五入
  • MOD(x,y) 返回除法操作的余数
  • NOW() 返回当前的系统日期
  • FORMAT(c,format) 改变某个域的显示方式
  • DATEDIFF(d,date1,date2) 用于执行日期计算

GROUP BY

根据一个或多个列对结果集进行分组统计,得到一个分组汇总表

select 子句中的列名为分组列或列函数,列函数对group by子句的每个组各返回一个结果

可以与where/having合用

group by

HAVING

增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用

创建用户

host 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%

授权

  • privileges 用户的操作权限,如SELECT, INSERT, UPDATE, ALL
  • databasename 数据库名
  • tablename 表名可用 *

修改密码

撤销权限

查看用户权限 SHOW GRANTS FOR 'username'@'%';

删除用户

刷新数据库

数据导出与导入

导出

mysqldump

mysqldump -hhost -uusername -ppassword db_name > filename.sql

导入

  1. 新建数据库: CREATE DATABASE database_name
  2. 选择数据库: mysql> use database_name
  3. 导入数据: mysql> source filename.sql
  4. 导入数据另一种方法: $mysql -uusername -p db_name < filename.sql

设置最大导入块: set global max_allowed_packet = 2*1024*1024*10

D3 学习笔记

选择集

d3.select(), d3.selectAll() 选择元素返回的对象

  • 标签选择
  • # id选择
  • . class选择
  • 支持链式语法

数据绑定

datum(): 绑定一个数据到选择集上

data(): 绑定一个数组到选择集上

使用data() 绑定数据时,数据与元素格式不匹配

  • update 绑定数据
  • enter 元素不够集
  • exit 元素多余集

元素操作

  • append() 附加元素
  • insert() 元素前插入
  • remove() 删除

body.append("p").text("append p element");

添加简单图表

添加画布

添加矩形

  • x:矩形左上角的 x 坐标
  • y:矩形左上角的 y 坐标
  • width:矩形的宽度
  • height:矩形的高度

比例尺

比例尺: 将某一区域的值映射到另一区域,其大小关系不变。

线性比例尺

离散比例尺

坐标轴

  • d3.svg.axis():D3 中坐标轴的组件,能够在 SVG 中生成组成坐标轴的元素。
  • scale():指定比例尺。
  • orient():指定刻度的朝向,bottom 表示在坐标轴的下方显示。
  • ticks():指定刻度的数量。

在SVG中添加坐标轴

添加图示

生成器

读取文件

  • d3.text 读取服务器文本
  • d3.json 读取服务器json数据

折线

线段的第一个点和最后一个会连接,需要使用css打断

指定线段生成器

绘制线段

散点图

过渡效果

动作在初始状态到最终状态之间的变化

散点

布局

布局:计算出适合于作图的数据

弧生成器

添加作图所需分组

添加路径

Hbase 了解

Hbase 2006年 出现, 是bigtable的开源clone。是建立的hdfs之上实时读写的数据库系统。

介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,主要用来存储非结构化和半结构化的松散数据。

HBase 简介

特点

  1. 大:一个表可以有上亿行,上百万列
  2. 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
  3. 稀疏:对于为空(null)的列,并不占用存储空间

逻辑视图

HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(column family)

Row key:可以是任意字符,存储时数据按照 Row key 的字典序排序存储

列族:列归属某个列族,列名都以列族作为前缀,访问控制、磁盘和内存的使用统计都是在列族层面进行的。

cell:通过row和columns确定的为一个存贮单元称为cell,数据没有类型,以字节码形式存储。cell都保存着同一份数据的多个版本。版本通过时间戳来索引。

数据版本回收:一是保存数据的最后n个版本,二是保存最近一段时间内的版本

访问方式

  1. 单个row key
  2. 通过row key 和 range
  3. 全表扫描