note for sql
Feb 8

MYSQL 获取随机数 不指定

phpcto , 10:03 , WEB技术 » SQL , 评论(0) , 引用(0) , 阅读(8064) , Via 本站原创
获取一条随机数首选:
SELECT r1.* FROM ts_tag AS r1 JOIN (SELECT (RAND() * (SELECT MAX(tag_id) FROM ts_tag)) AS tag_id) AS r2 WHERE r1.tag_id >= r2.tag_id ORDER BY r1.tag_id ASC LIMIT 1

获取多条随机数首选:
SELECT * FROM ts_tag WHERE tag_id >= ((SELECT MAX(tag_id) FROM ts_tag)-(SELECT MIN(tag_id) FROM ts_tag)) * RAND() + (SELECT MIN(tag_id) FROM ts_tag)  LIMIT 10
Nov 17
今天发现一个很有趣的事情,是关于msql导入导出数据的 你要不要看看呢?

导出数据:
首先,我用命令

mysql -hlocalhost -uroot -p123456 < G:/sql.sql blog

成功将数据导入blog 数据库

下面我情况了数据库blog,使用如下命令导入

mysql -hlocalhost -uroot -p123456 blog < G:/sql.sql


我了个去 数据依然导入成功。

太给力了 后面2个参数顺序可以互换??

----------------好吧,我承认我OUT了 来试试导出吧--------------------

首先,用命令

mysqldump -hlocalhost -uroot -p123456 blog > G:/out.sql

成功导出blog数据库内容

有了上面的经验,再试试如下命令

mysqldump -hlocalhost -uroot -p123456 > G:/out.sql blog

成功导出blog数据库内容。
好吧,太给力了。哥败了




May 12
MySQL 提供 Master/Slave 机制让您轻易的完成多个 MySQL Server 之间的数据同步,可以建置备援主机或是进行负载平衡等等。但是要注意:一台 Master Server 可以拥有很多台 Slave Server,mysql主从服务器的配置会牵扯到,mysql的版本,启动文件,等一些问题。
下面是配置步骤:
1、mysql配置文件my.cnf的位置

2、如何启动、停止mysql,找好启动文件

假设有两台机器,已经安装好了mysql(尽量同版本,且两台机器同一网络,可以ping通)

有朋友说:“从服务器,不能低于主服务器的版本”,不过我是低于的,没有出现问题。

主机A: 192.168.1.100

从机B:192.168.1.101

可以有多台从机

1、先登录主机 A

mysql>GRANT REPLICATION SLAVE ON *.* TO ‘backup’@’192.168.1.101‘ IDENTIFIED BY ‘123456’;

赋予从机权限,有多台丛机,就执行多次

2、 打开主机A的my.cnf,输入

server-id = 1 #主机标示,整数
log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写
read-only =0 #主机,读写都可以
binlog-do-db =test #需要备份数据,多个写多行
binlog-ignore-db=mysql #不需要备份的数据库,多个写多行

3、打开从机B的my.cnf,输入

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.1.100
master-user =backup
master-pass =123456
master-port =3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =test #只复制某个库
replicate-ignore-db=mysql #不复制某个库

4、同步数据库

有多种方法,我说最笨的一种,先mysqldump导出主机A的数据test为 test.sql

然后在,从机B上建立数据库test,mysql导入 test.sql到test库中

5、先重启主机A的mysql,再重启从机B的mysql

6、验证

在主机A中,mysql>show master status\G;

在从机B中,mysql>show slave status\G;

能看到大致这些内容

File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql

可以在主机A中,做一些INSERT, UPDATE, DELETE 操作,看看主机B中,是否已经被修改。
May 7

ORACLE 时间相减 不指定

phpcto , 15:28 , WEB技术 » SQL , 评论(0) , 引用(0) , 阅读(8250) , Via 本站原创
ORACLE 默认的时间相减返回的是天数。所以*24*60就是分数,所以*24*3600就是秒数。


select to_date('2006-05-11 12:30:01','YYYY-MM-DD HH24:MI:SS')   -to_date('2006-05-11 12:30:00','YYYY-MM-DD HH24:MI:SS') T from dual;
May 7
使用数据库
use [dbnames]

创建数据库
create database [dbname]

删除数据库
drop database [dbname]

快速复制一张表
create table [new_tbname] select * from [old_tbname]

快速导入内容到一张表[字段一样]
insert into [new_tbname] select * from [old_tbname]

快速自定义导入内容到一张表[字段也许不一样]
insert into[new_tbname] (title,content) select oldtitle,oldcontnt from [old_tbname]

修改ID为自增
alter table [tb_name] modify id int auto_increment primary key;
或者
ALTER TABLE [tb_name] CHANGE `id` `id` INT( 10 ) NOT NULL AUTO_INCREMENT;

在表头添加字段
alter table think_demo2 add id int (10) not null first

在表尾添加字段
ALTER TABLE `think_demo2` ADD `time_at` DATETIME NOT NULL

在字段title后添加字段
ALTER TABLE `think_demo2` ADD `author` VARCHAR( 20 ) NOT NULL AFTER `title`

删除字段
alter table think_demo2 drop column id

检查表
CHECK TABLE think_demo2,think_demo;

优化表
OPTIMIZE TABLE `think_demo` , `think_demo2`

修复表
REPAIR TABLE `think_demo` , `think_demo2`

修改表类型
ALTER TABLE `think_demo2` ENGINE = MYISAM ;

清空表
TRUNCATE TABLE `think_demo2`

重命名表:
alter table think_demo2 rename think_demo1;
分页: 1/7 第一页 1 2 3 4 5 6 7 下页 最后页 [ 显示模式: 摘要 | 列表 ]