安装mysql数据库

可以看之前写过的一篇博文:点击传送

mysql命令

mysql程序使用两种不同类型的命令

特殊的MySQL命令

标准的SQL语句

mysql程序有自己的一组命令,方便控制环境以及提取关于MySQL服务器的信息。

举例

mysql>\s--------------mysql Ver14.14 Distrib 5.7.26, for linux-glibc2.12(x86_64) using EditLine wrapper

Connectionid: 3Current database:

Current user: root@localhost

SSL: Notinuse

Current pager: stdout

Using outfile:''Using delimiter: ;

Server version:5.7.26MySQL Community Server (GPL)

Protocol version:10Connection: Localhost via UNIX socket

Server characterset: latin1

Db characterset: latin1

Client characterset: utf8

Conn. characterset: utf8

UNIX socket:/tmp/mysql.sock

Uptime:2 hours 14 min 23sec

Threads:2 Questions: 6 Slow queries: 0 Opens: 108 Flush tables: 1 Open tables: 101 Queries per second avg: 0.000

--------------

\s命令

MySQL程序支持标准SQL命令。

查看数据库

mysql>show databases;+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.34 sec)

查看mysql数据库中的表

mysql会话一次只能连一个数据库

分号代表命令结束

mysql>use mysql;

Database changed

mysql>show tables;+---------------------------+

| Tables_in_mysql |

+---------------------------+

| columns_priv |

| db |

| engine_cost |

| event |

| func |

| general_log |

| gtid_executed |

| help_category |[...]

创建数据库

create database name;

mysql>create database mytest;

Query OK,1 row affected (0.00 sec)

创建用户账户

语法格式

grant 权限 on 数据库对象 to 用户

举例

mysql> grant select,insert,delete,update on test.* to test identified by 'test';

Query OK,0 rows affected, 1 warning (0.00 sec)

grant命令:如果用户账户不存在则创建,赋予权限

indentified by:为新用户设置密码

这条命令意思为:赋予用户test拥有对数据库test其下所有表有查询,插入,删除,修改的权限,该用户的密码为test。

创建数据表

注意创建数据表前先指定数据库

empid的值唯一,不可重复

mysql>use mytest;

Database changed

mysql>create table employees (-> empid int not null,-> lastname varchar(30),-> firstname varchar(30),-> salary float,->primary key (empid));

Query OK,0 rows affected (0.01 sec)

创建完成后查看

mysql>show tables;+------------------+

| Tables_in_mytest |

+------------------+

| employees |

+------------------+

1 row in set (0.00 sec)

mysql的数据类型

数据类型

描述

char

定长字符串(固定长度)

varchar

变长字符串(可变长度)

int

整数值

float

浮点值

boolean

布尔值

date

YYYY-MM-DD格式日期

time

HH:mm:ss格式时间

timestamp

日期加时间组合

text

较长的字符串值

BLOB

二进制值,如图片,视频

插入和删除数据

举例

mysql> insert into employees values (1,'Blum','Rich',25000.00);

Query OK,1 row affected (0.17sec)

mysql> insert into employees values (2,'Blum','Rich',25000.00);

Query OK,1 row affected (0.10 sec)

删除

mysql> delete from employees where empid =2;

Query OK,1 row affected (0.00 sec)

查询数据

举例

mysql> select *from employees;+-------+----------+-----------+--------+

| empid | lastname | firstname | salary |

+-------+----------+-----------+--------+

| 1 | Blum | Rich | 25000 |

+-------+----------+-----------+--------+

1 row in set (0.00 sec)

修饰符

where 显示符合特定条件

order by 对某列排序

limit 显示指定行数据

mysql> select * from employees where salary > 4000;+-------+----------+------------+--------+

| empid | lastname | firstname | salary |

+-------+----------+------------+--------+

| 1 | Blum | Rich | 25000 |

| 3 | Blum | Katie Jane | 34500 |

| 4 | Blum | Jessica | 25340 |

+-------+----------+------------+--------+

3 rows in set (0.00 sec)

在脚本中使用数据库

登录到服务器

在$HOME/.my.cnf配置文件中设置mysql登录账户密码

这样该用户就不用输入密码就能登陆

[tz@tzPC ~]$ whoamitz

[tz@tzPC~]$ cat $HOME/.my.cnf

[client]

password=test

[tz@tzPC~]$ chmod 400 $HOME/.my.cnf

[tz@tzPC~]$ mysql mytest -u test

向服务器发送命令

发送单条命令

[root@tzPC 25Unit]# cat mtest1.sh#!/bin/bash

#send a command to the MySQL server

MYSQL=$(whichmysql)

$MYSQL mytest-u test -e 'select * from employees'

效果

[root@tzPC 25Unit]# bash mtest1.sh

+-------+----------+------------+--------+

| empid | lastname | firstname | salary |

+-------+----------+------------+--------+

| 1 | Blum | Rich | 25000 |

| 3 | Blum | Katie Jane | 34500 |

| 4 | Blum | Jessica | 25340 |

+-------+----------+------------+--------+

发送多条命令

使用EOF分隔符之间的所有内容重定向给mysql命令时,因为数据是重定向过来的所以返回值只包含原始数据,没有格式,有利于提取字段。

[root@tzPC 25Unit]# cat mtest2.sh#/bin/bash

#sending multiple commands to MySQL

MYSQL=$(whichmysql)

$MYSQL mytest-u test <

show tables;select * from employees where salary > 4000;

EOF

效果

[root@tzPC 25Unit]# bash mtest2.shTables_in_mytest #这两行是show tables 命令显示的,因为没有了格式框,第一行是这个表位于哪个数据库

employees #这一行显示的是表名

empid lastname firstname salary1 Blum Rich 25000

3 Blum Katie Jane 34500

4 Blum Jessica 25340

show tables;

mysql>show tables;+------------------+

| Tables_in_mytest |

+------------------+

| employees |

+------------------+

1 row in set (0.00 sec)

脚本主体如下

[root@tzPC 25Unit]# cat mtest3.sh#!/bin/bash

#send data to the tableinth MySQL database

MYSQL=$(whichmysql)if [ $# -ne 4] #如果输入参数不等于4then

echo "Usage: mtest3 empid lastname firstname salary"#Usage用法 salary薪水elsestatement="insert into employees values ($1,'$2','$3','$4')"$MYSQL mytest-u test <

$statement

EOF

#EOF必须顶格写且只能由EOF结束符,不能有空格制表符等if [ $? -eq 0]then

echo "Data successfully added!"

else

echo "Problem adding data!"

fi

fi

脚本格式化输出如下

[root@tzPC 25Unit]# cat mtest4.sh#!/bin/bash

#redirecting重定向 SQL output to a varible

MYSQL=$(whichmysql)

dbs=$($MYSQL mytest -u test -Bse 'show databases') #dbs中的数据为information_schema mytest中间以空格隔开for db in$dbsdo

echo$dbdone

效果

[root@tzPC 25Unit]# bash mtest4.shinformation_schema

mytest

因为是重定向到变量dbs,所以没有格式,-B选项指定mysql工作在批处理模式下,-s选项禁止输出列标题,如Database标题就没有输出出来

mysql>show databases;+--------------------+

| Database |

+--------------------+

| information_schema |

| mytest |

+--------------------+

2 rows in set (0.00 sec)

mysql程序还支持XML,可扩展标记语言,只需要加上-X选项

[root@tzPC 25Unit]# mysql mytest -u test -X -e 'select * from employees where empid =1'

1

Blum

Rich

25000

学习来自:《Linux命令行与Shell脚本大全 第3版》第25章

搭建mysql数据库脚本语言_二十二、创建数据库脚本相关推荐

  1. 阿里云mysql创建数据库服务器地址_阿里云服务器创建数据库操作流程

    阿里云服务器创建数据库操作流程,如何上传数据库阿里云. 在阿里云ecs云服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先做个大致的了解: 如果您想看更多的在ecs上的数据库的相关操作,请前 ...

  2. 建立一个mysql 文件命令是_使用命令行创建数据库

    今天针对如何在Linux操作系统上利用命令行创建Oracle Database进行一个总结及实践. 下面是官方文档"Database Administrator's Guide"中 ...

  3. MySQL二十八规范数据库设计

    MySQL二十八:规范数据库设计 糟糕的数据库设计: ●数据冗余,浪费空间 ●数据库插入和删除都会麻烦.异常[ 屏蔽使用物理外键] ●程序的性能差 良好的数据库设计: ●节省内存空间 ●保证数据库的完 ...

  4. shell脚本详解(十二)——Here Document免交互及Expect自动化交互

    shell脚本详解(十二)--Here Document免交互及Expect自动化交互 一.Here Document 免交互 1.格式 2.注意事项 3.免交互方式实现对行数的统计,将要统计的内容置 ...

  5. 【C语言】二十二步了解函数栈帧(压栈、传参、返回、弹栈)

    阅读本文需要掌握的知识 熟练使用--c语言函数 进入正题前 首先我们为什么要学习函数的栈帧? 简单回答就是:增加内功 学习函数调用的底层代码,了解函数如何传参.如何返回 这样对于函数的使用有很大的帮助 ...

  6. C++语言学习(十二)——C++语言常见函数调用约定

    C++语言学习(十二)--C++语言常见函数调用约定 一.C++语言函数调用约定简介 C /C++开发中,程序编译没有问题,但链接的时候报告函数不存在,或程序编译和链接都没有错误,但只要调用库中的函数 ...

  7. 零基础带你学习MySQL—单行子查询和多行子查询(二十二)

    零基础带你学习MySQL-多行子查询(二十二) 一.什么是子查询? 子查询是指嵌入在其它 sql 语句中的 select 语句,也叫嵌套查询 二.什么是单行子查询? 单行子查询是指只返回一行数据的子查 ...

  8. 谭浩强c语言不讲位运算呢,谭浩强C语言教程第十二章-位运算.doc

    谭浩强C语言教程第十二章-位运算 12位运算1 12.1位运算符C语言提供了六种位运算符:1 12.1.1按位与运算1 12.1.2按位或运算2 12.1.3按位异或运算2 12.1.4求反运算3 1 ...

  9. C语言学习(十二)C语言中的字符(宽字符与窄字符)、从字符谈谈C语言的编码、转义字符

    C语言学习(十二)C语言中的字符(宽字符与窄字符).从字符谈谈C语言的编码.转义字符 目录 C语言学习(十二)C语言中的字符(宽字符与窄字符).从字符谈谈C语言的编码.转义字符 英文字符 字符的表示 ...

  10. c语言压缩文本文件北京理工大学,北京理工大学C语言程序设计第十二章文件.ppt...

    北京理工大学C语言程序设计第十二章文件 2000年1月25日 北京理工大学 / 第十二章 文件 第一节 文件概述 第二节 文件的处理 第三节 文件的顺序读写操作 第四节 文件的随机读写操作 第五节 文 ...

最新文章

  1. 08Factory Method(工厂方法)模式
  2. 【整理】JDK MacOS X
  3. VLAD教程和资料 All about VLAD
  4. C语言动态内存管理和动态内存分配
  5. SpringBoot2.0基础案例分类总结,后续更新计划说明
  6. Jenkins报错Error fetching remote repo 'origin'真正解决办法
  7. Mac安装oracleVM VMware安装失败,解决方案
  8. HBuilder工作笔记001---HBuilder打包安卓和ios应用
  9. 调节RStudio的代码字体大小
  10. Tif格式图片的读取与保存
  11. 四面体体积公式 hdu 1411
  12. SSM整合完整流程讲解
  13. 平面解析几何----圆锥曲线1/AF+1/BF=2/ep的三种证法
  14. samba使用root用户连接
  15. Bartender安装时间长,安装成功后未跳出激活界面的解决方法,亲测2019和2021版
  16. 超详细双系统安装指南
  17. 定点数一位乘法之Booth(布斯)算法
  18. 形式化、半形式化和非形式
  19. 上海2021年高考成绩排位查询,上海各区2021年一模成绩排位情况汇总!
  20. k8s里面的iptables和ipvs有什么区别?怎么选?为什么选择ipvs

热门文章

  1. linux学习笔记2.0
  2. [JVM]了断局: G1 入门
  3. 【图像重建】基于遗传算法实现二值图像重建附matlab代码
  4. 带你玩转kubernetes-k8s(第38篇:深入分析集群安全机制)
  5. 7. Laravel5学习笔记:如何定义自己的视图组件
  6. python3群控手机_带你用 Python 实现自动化群控设备
  7. 买什么房最合算(兼谈小产权房热销根源)
  8. 淘宝哪些退款原因会影响店铺?具体介绍
  9. 机器学习-随机森林算法梳理
  10. ahpu程序设计协会蓝桥选拔赛题解