Linux shell 批量创建数据库/表

Shell 脚本如下:

  1. # create database and table
  2. HOST='localhost'
  3. PORT='3306'
  4. USER='root'
  5. PWD=''
  6. DBNAME='top123'
  7. TABLENAME='gametop800'
  8. mysql_login=''
  9. mysql_create_db=''
  10. mysql_create_table=''
  11. function mysql_create(){
  12. echo "login mysql $HOST:$PORT ..."
  13. mysql_login="sudo mysql -h $HOST -P $PORT -u $USER"  # mysql -h host -P port -u root -p pwd
  14. echo | ${mysql_login}
  15. if [ $? -ne 0 ]; then
  16. echo "login mysql ${HOST}:${PORT} failed.."
  17. exit 1
  18. fi
  19. echo "create database $DBNAME ..."
  20. mysql_create_db="create database if not exists $DBNAME"
  21. echo ${mysql_create_db} | ${mysql_login}
  22. if [ $? -ne 0 ]; then
  23. echo "create db ${DBNAME} failed.."
  24. exit 1
  25. fi
  26. echo "create table $TABLENAME ..."
  27. mysql_create_table="create table $TABLENAME(
  28. id char(50) not null,
  29. top int,
  30. name char(100),
  31. category char(50),
  32. rating float,
  33. ratingcount char(20),
  34. download char(30),
  35. price char(20),
  36. publishdate char(20),
  37. version char(40),
  38. filesize char(40),
  39. requireandroid char(40),
  40. contentrating char(40),
  41. country char(10),
  42. dtime datetime not null,
  43. primary key(id, dtime)
  44. )"
  45. echo ${mysql_create_table} | ${mysql_login} ${DBNAME}
  46. if [ $? -ne 0 ]; then
  47. echo "create table ${TABLENAME} fail..."
  48. exit 1
  49. fi
  50. echo "create table ${TABLENAME} success!"
  51. }
# create database and table
HOST='localhost'
PORT='3306'
USER='root'
PWD=''
DBNAME='top123'
TABLENAME='gametop800' mysql_login=''
mysql_create_db=''
mysql_create_table='' function mysql_create(){
echo "login mysql $HOST:$PORT ..."
mysql_login="sudo mysql -h $HOST -P $PORT -u $USER" # mysql -h host -P port -u root -p pwd
echo | ${mysql_login}
if [ $? -ne 0 ]; then
echo "login mysql ${HOST}:${PORT} failed.."
exit 1
fi echo "create database $DBNAME ..."
mysql_create_db="create database if not exists $DBNAME"
echo ${mysql_create_db} | ${mysql_login}
if [ $? -ne 0 ]; then
echo "create db ${DBNAME} failed.."
exit 1
fi echo "create table $TABLENAME ..."
mysql_create_table="create table $TABLENAME(
id char(50) not null,
top int,
name char(100),
category char(50),
rating float,
ratingcount char(20),
download char(30),
price char(20),
publishdate char(20),
version char(40),
filesize char(40),
requireandroid char(40),
contentrating char(40),
country char(10),
dtime datetime not null,
primary key(id, dtime)
)" echo ${mysql_create_table} | ${mysql_login} ${DBNAME}
if [ $? -ne 0 ]; then
echo "create table ${TABLENAME} fail..."
exit 1
fi echo "create table ${TABLENAME} success!"
}

执行脚本后,结果如下:

MySQL 从常用操作命令:

显示数据库

show databases;

切换数据库 use top123;

显示数据库表

show tables;

修改主键

alter table gametop800 add primary key(id);

删除主键

alter table gametop800 drop primary key;

添加组合主键

alter table gametop800 add primary key(id, dtime);

如果感兴趣的话,可以深入综合运用awk,cut,paste,正则表达式,数据库操作等较为复杂的语法,完成MySQL数据库操作

下面是实现了一个抓取网页,提取特征,抽取信息,结果汇总,批量插入数据库永久保存

示例:

附加:

1) 查看正在处理的进程:

show  processlist;

2) 查看数据库占空间大小:

show  table  status  from  some_database;

例如: show table status from top_500;        # top_500  is  a  database

SELECT  table_schema  top_500, sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema ;

查询结果如下:

3) 日期模糊查询

对于日期如: 2012-01-03 12:34:54 ,  2012-01-03 18:14:34, 2012-01-04 14:35:59等日期,想按日期,即 2012-01-03, 2012-01-04, 2012-01-05求和排序,可用 date_format(time, '%Y-%m-%d') 格式,如下:

select name, time, sum(num) from click_table where name='com.wordsmobile' group by date_format(time, '%Y-%m-%d') order by time desc limit 30;

2011-12-06 10:04:26 格式:

date_format(time, '%Y-%m-%d %H:%m:%S')

如查询今天签到的同学

select true_name from sign_in WhereDATE_FORMAT((datetime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')group by true_name;

4)MySql 查询一周内最近7天记录

本周内:
select * from wap_content where week(created_at) = week(now);

查询一天:
select * from table where to_days(column_time) = to_days(now());

select * from table where date(column_time) = curdate();

查询7天:
select * from table  where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

查询一个月:
select * from table  where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(column_time);

MySQL命令操作(Linux平台)的更多相关文章

  1. Mysql 命令 操作

    1.user表        如果需要从其他机器连接 mysql 服务器报这个错“ERROR 1130: Host 'root' is not allowed to connect to this M ...

  2. 关于如何测试cpu性能的命令操作 linux系统

    for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/d ...

  3. (0.2.1)mysql数据库环境-操作系统配置

    目录 1.基于Linux平台的Mysql项目场景介绍 2.mysql数据库运行环境准备-最优配置 2.1.如何查看官方文档了解环境要求 2.2.安装虚拟机环境与操作系统 2.3.操作系统最优配置9大步 ...

  4. mysql常用操作与日志

    在linux上的mysql命令 mysql -e "mysql内部命令" #可在外部显示myslq内的输出,-e可跟多条命令用;隔开 在mysql内的mysql命令 system ...

  5. linux命令-jdk及mysql安装操作

    1. VMware虚拟机 VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows.DOS.LINUX系统. 1.1.  vmware15安装配置 Work ...

  6. mysql命令行的导入导出sql,txt,excel(都在linux或windows命令行操作)(转自筑梦悠然)

    原文链接https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/73805962 Mysql导入导出sql,txt,excel 首先我们通过命令行 ...

  7. linux shell 操作 mysql命令(不进入mysql操作界面)

    由于需要,需要将一系列mysql的操作制作成.sh文件,只需要shell操作bash命令就可以傻瓜式的完成黑盒任务. #!/bin/bash mysql -uroot -p??? -e "c ...

  8. Linux平台卸载MySQL总结

    如何在Linux下卸载MySQL数据库呢? 下面总结.整理了一下Linux平台下卸载MySQL的方法. MySQL的安装主要有三种方式:二进制包安装(Using Generic Binaries).R ...

  9. linux下mysql命令

    一.总结一下: 1.linux下启动mysql的命令:   mysqladmin start/ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysq ...

随机推荐

  1. pom中parent和dependency区别以及dependencyManagement区别

    真的很详细 很感动 1.在同一个pom文件下,如果<dependencies>和<dependencyManagement>中都对该jar做了依赖,以<dependenc ...

  2. netty的reactor模式

    reactor中包含5个核心结构,那么从操作系统低层次的调度来看5部分是这样的. (1)Handle(句柄资源描述符)本质是对客户端连接上来以后发生事件的处理机制,比如连接成功,读取数据,发送数据等状 ...

  3. SQLite数据库简介和使用

    一.Sqlite简介: SQLite (http://www.sqlite.org/),是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中 ...

  4. Elasticsearch进阶篇(一)~head插件的安装与配置

    1.安装node.js 1.1.通过官网下载二进制安装包 https://nodejs.org/en/download/ 选择对应的版本,右键复制下载链接,进入linux目录,切换到要安装目录的磁盘. ...

  5. 长乐国庆集训Day1

    T1 统计数字 题目 [题目描述] 设 S(N ) 表示 N 的各位数字之和,如 S(484) = 4+8+4 = 16, S(22) = 2+2 = 4. 如果一个正整数满足 S(x*x) = S( ...

  6. LeetCode第154场周赛(Java)

    估计要刷很久才能突破三道题了.还是刷的太少.尽管对了前两题,但是我觉得写的不怎么样.还是将所有题目都写一下吧. 5189. "气球" 的最大数量 题目比较简单.就是找出一个字符串中 ...

  7. sqlite 安装与编译

    本文简述了SQLite的概念,并详细描述了SQLite在Linux和Windows平台下的编译方法 关于 SQLite SQLite是一个进程内的库,实现了自给自足的.无服务器的.零配置的.事务性的 ...

  8. vs2017- C语言- winsocket- 链接错误 LNK2019

    错误介绍 操作系统:windows10 IDE:vs2017 语言:C语言 项目内容简介:编写一个双人网络海战棋对战游戏 错误类型:链接错误 LNK2019 解决方案:程序需要用到ws2_32.lib ...

  9. 【LEETCODE】64、链表分类,medium&hard级别,题目:2,138,142,23

    package y2019.Algorithm.LinkedList.medium; import y2019.Algorithm.LinkedList.ListNode; /** * @Projec ...

  10. RabbitMQ之消息模式(下)

    目的: RabbitMQ之消息模式(上):https://www.cnblogs.com/huangting/p/11994539.html 消费端限流 消息的ACK与重回队列 TTL消息 死信队列 ...