kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

MySQL 最常用命令

登录到mysql中,然后在mysql的提示符下运行命令,每个命令以分号(;)结束。

一:mysql服务的启动和停止
1
2
sudo /etc/init.d/mysql stop   // net stop mysql
sudo /etc/init.d/mysql start   // net start mysql
二:登陆mysql

语法如下: mysql -u用户名 -p用户密码
命令 mysql -uroot -p , 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

三:增加新用户

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码” 如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有所有的权限。首先用以root用户连入mysql,然后键入以下命令:

1
grant all privileges on *.* to user1@localhost Identified by "password1";

如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对abc数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:

1
grant select,insert,update,delete on abc.* to user1@localhost Identified by "password1";

如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%“。 如果你不想user1有密码,可以再打一个命令将密码去掉。

1
grant select,insert,update,delete on abc.* to user1@localhost dentified by "";
四:显示数据库列表。
1
show databases;  

缺省数据库:mysql。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

五:建库与删库:
1
2
create database 库名;
drop database 库名;
六:显示库中的数据表:
1
2
use abc;
show tables;
七:显示数据表的结构:
1
describe 表名;
八:建表与删表:
1
2
3
4
use abc;
create table 表名(字段列表);
drop table 表名;
如:create table imformation(name varchar(11), age int(5));
九:清空表中记录:
1
delete from 表名;
十:显示表中的记录:
1
select * from 表名;
十一:增加一个字段:
1
2
3
4
5
6
7
8
alter table table_name add column <字段名><字段选项>
alter table imformation add phone varchar(5);
觉得5太小,修改为15
修改字段:   
alter table table_name change <旧字段名> <新字段名><选项>
alter table imformation change phone phone varchar(15);
增加几个字段:
alter table imformation add authors varchar(100),add category varchar(20);
十二:删除一个字段:
1
2
alter table table_name drop column <字段名>
alter table imformation drop authors;
十三:插入记录:
1
2
insert into 表名称(字段名1,字段名2…) values (字段1的值,字段2 的值,…);
insert into imformation(name,phone) values('a1','123456789');
十四:修改记录:
1
2
update imformation set column_name1="" where column_name2="";
update imformation set phone="987654321" where name="a1";
十五:删除记录:
1
2
delete from 表名称 where 条件表达式;
delete from imformation where name="a2";
十六:查看建表信息:
1
show create table imformation\G;  大写G
十七:某个字段不同值的数目:
1
SELECT tid,count(tid) as tnum FROM TABLE group by tid order by tnum DESC;   DESC降序,ASC升序。
十八:不同id的status=0的数目:
1
SELECT id,count(*) AS tnum FROM TABLE WHERE id IN (id1, id2, id3, ...) AND status=0 GROUP BY id;
十九:替换函数
1
UPDATE `table_name` SET `field_name` = replace (`field_name`,'from_str','to_str') WHERE `field_name` LIKE '%from_str%'
二十:如何清除输入过的mysql命令

清空用户目录下的.mysql_history

平衡二叉树

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/**
 * 平衡二叉搜索(排序)树
 *
 * 平衡二叉搜索树双称为AVL树,它也是一棵二叉搜索树,是对二叉搜索树的一种改进,或都是具有下列性质的二叉树:它
 * 的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。
 *
 * 平衡因子(Balance Factor,BF)定义为该节点的左子树的深度减去其右子树的深度,则平衡二叉树上所有节点的平
 * 衡因子只可能是-1、0和1。只要树上有一个节点的平衡因子的绝对值大于1,则该二叉树就是不平衡的了。
 *
 * 使用二叉排序树保持平衡的基本思想是:每当在二叉排序树中插入一个节点时,首先检查是否因插入而破坏了平衡,若
 * 是,则找出其中的最小不平衡二叉树,在保持二叉排序树特性的情况下,调整最小不平衡子s树中节点之间的关系,以达
 * 到新的平衡。所谓最小不平衡子树指离插入节点最近且以平衡因子的绝对值大于1的节点作为根的子树。
 *
 * 对于平衡二叉搜索树,保持树的平衡的基本机制就是旋转。旋转是对树的元素顺序进行调节。旋转的目的是消除由于临
 * 时插入和删除对树的平衡产生的影响。
 *
 * 有四种旋转:
 * 1)绕某元素左旋转
 *          80 ← p               90
 *         / \                   / \
 *        60 90 ← r    →         80   120
 *           /\                /\    /
 *         85 120            60 85 100
 *            /
 *          100
 *            
 * 2)绕某元素右旋转
 *      p → 100                      85
 *           /\                      / \
 *     l → 85 120          →         60   100
 *         /\                       \    /\
 *        60 90                     80  90 120
 *         \
 *         80
 *
 * 3)绕某元素的左子节点左旋转,接着再绕该元素自己右旋转。此情况下就是 左旋与右旋 的结合,具体操作时可以分
 * 解成这两种操作,只是围绕点不一样而已
 *
 * 先绕100的左子节点80左旋转,接着再绕100左旋转
 *
 *                左旋                 右旋
 *         100     →     p → 100        →         90
 *         /\                /\                 /\
 *   p → 80 120        l → 90 120            80 100
 *       /\                /                  /\   \
 *     60 90 ← r         80                 60 85  120
 *        /              / \
 *       85             60 85
 *        
 * 4)绕某元素的右子节点右旋转,接着再绕该元素自己左旋转。此情况下就是 右旋与左旋 的结合,具体操作时可以分解
 * 成这两种操作,只是围绕点不一样而已
 *
 * 先绕80的右子节点80右旋转,接着再绕80左旋转
 *                     右旋             左旋
 *          80          →      80 ← p     →       85
 *          /\                /\               /\
 *        60 100 ← p        60 85 ← r        80 100
 *           /\                  \           /    /\
 *     l → 85 120                100        60  90 120
 *          \                     /\
 *           90                 90 120
 *           
 * 平衡二叉树实现类 AVLTree 中的很多方法与排序二叉树是一新的,详细请参考 BinSearchTree 类中相应方法
 *
 * AVLTree中的Entry对象与BinSearchTree中的Entry对象是有区别的,所以AVLTree类不能是BinSearchTree的
 * 了类,虽然很多的方法是一样的(如:contains、getEntry、successor、iterator),还有一些方法(add、de
 * leteEntry)只是在操作后增加了节点平衡因子调整动作,但不能直接继承于它。
 *
 * 二叉搜索树与平衡二叉搜索树没有在Java集合框架中实现,但RED-BLACK树在TreeMap实现过,当然TreeSet也是,
 * 因为它是基于TreeMap实现的,TreeSet对象基本上就是一个忽略了每个元素值部分的TreeMap对象。
 *
 */