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. Windows下同时安装了Python2与Python3时如何使用RobotFrameWork

    由于windows下不能像linux那样指定python文件的运行路径,当电脑中即安装了python2,又安装了python3时,也不能在环境变量中都配置运行路径吧(当然是可以配置的,系统会按照靠前的 ...

  2. 深入分析——HashSet是否真的无序?(JDK8)

    HashSet 是否无序 (一) 问题起因: <Core Java Volume I-Fundamentals>中对HashSet的描述是这样的: HashSet:一种没有重复元素的无序集 ...

  3. docker安装指定版本nexus3

    安装maven私服 1 下载指定版本的镜像  docker  pull  sonatype/nexus3:3.18.1 2 宿主机创建一个映射目录 ,并设置所有者 mkdir  -p  /app/ne ...

  4. Versioning information could not be retrieved from the NuGet package repository. Please try again later.

    Versioning information could not be retrieved from the NuGet package repository. Please try again la ...

  5. git 学习笔记 --多人协作

    当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin. 要查看远程库的信息,用git remote: $ git r ...

  6. 在PHP中使用UUID扩展的函数

    环境:CentOS Linux release 7.7.1908 (Core)PHP 7.3.11UUID Extention 1.0.4 感觉上PHP对UUID的支持似乎不是很上心,PECL中的UU ...

  7. Chrome 谷歌开发者工具使用窍门

    我们这里介绍主要的几块:Console.Source.Network Console 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的, ...

  8. EF DBFirst 实体生成命令

    dbfirst Entity生成命令行: Scaffold-DbContext "PORT=5435;DATABASE=DocumentDB;HOST=localhost;PASSWORD= ...

  9. SpringBoot的入门程序

    1. 创建一个springboot工程 可以参考springboot入门程序 2. 创建一个实体类 @Data //想相当于@Setter.@Getter和@ToString替代了setter.get ...

  10. 2019-07-24 PHP中mysql_fetch_assoc 和 mysql_fetch_array 有什么区别?

    mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组 来看下面的例子: 数据库中有上述几条数据,一般我们想取用就要按照如下代码: $con = mysql_connect('12 ...