分类 "Database" 下的文章

问题:HBase数据库的基本shell操作:增、删、改、查
方法:
1、增加
put ‘student’,’95001’,’Sname’,’LiYing’时,即为student表添加了学号为95001,名字为LiYing的一行数据,其行键为95001。
put 'student','95001','course:math','80'

2、查询
get命令,用于查看表的某一行数据:
get 'student','95001'
scan命令用于查看某个表的全部数据:
scan 'student'

3、删除
delete用于删除一个数据,是put的反向操作:
delete 'student','95001','Ssex'
deleteall操作用于删除一行数据:
deleteall 'student','95001'

4、修改
HBase会自动为添加的数据添加一个时间戳,故在需要修改数据时,只需直接添加数据,HBase即会生成一个新的版本,从而完成“改”操作,旧的版本依旧保留,系统会定时回收垃圾数据,只留下最新的几个版本,保存的版本数可以在创建表的时候指定。
put 'student','95001','course:math','82'

5、查询数据库中的表有哪些
直接list命令就可以查看所建立的表

6、删除数据表
disable 'student'
drop 'student'

参考:http://dblab.xmu.edu.cn/blog/install-hbase/

问题:mysql如何查询部分字段导出为sql文件?

方法:

导出

mysql -uroot -p baijunyao -e "SELECT id,name from users INTO OUTFILE'/var/lib/mysql-files/baijunyao.sql'"
mysql -uszzhitu -p database_name -e'select username, password, salt from users' > a.csv

导入

mysql -uroot -p baijunyao -e "load data local infile ‘D://mysqltmp/1.sqlinto table users character set utf8;“

阅读全文

问题:mysql5.7的json字段如何insert数据?

解决:虽然是json类型,但insert数据时还是需要引号的,而且必须是单引号,因为里面数据必须是双引号

方法:

insert into users (info, name) values ('{"a":"aa","b":"bb"}', "haha");

阅读全文

sqlalchemy联合查询两个表的数据,
查询Subject表所有数据,如果Subject有对应的Lesson数据就显示出来,没有就不显示

subjects = self.db.query(Subject.id, Subject.name, Subject.level,
    Subject.children, Lesson.id.label('lesson'))
    .outerjoin((Lesson, Subject.id==Lesson.subject_id))
    .order_by(Subject.level).all()

注:效率很低

问题:使用sqlalchemy如何随机获取数据?

解决:使用self.db.execute解析原生sql

方法:

user = self.db.execute(
    """SELECT * FROM users AS t1 JOIN(
        SELECT ROUND(
            RAND() * ((SELECT MAX(id) FROM users)-(SELECT MIN(id) FROM users))
            +(SELECT MIN(id) FROM users)
            ) AS rid
        ) AS t2
WHERE t1.id >= t2.rid
ORDER BY t1.id LIMIT 1;""").fetchone()
注:只能产生一条随机数据,产生多条时可使用fechall(),但是是顺序下去的

products = self.db.execute(
    "select id from products order by rand() limit 10;").fetchall()
这种方法是可以产生多条数据的
考虑到此方法效率不高,建议使用循环调用方法一

参考:

http://www.mantutu.com/index.php/mysql/271.html