Linux下MYSQL的相关操作

Linux 下 MySQL 详尽操作

 

写在最前

这份文档尽量做到详尽地说明Linux环境下mysql的使用。将从安装、使用、到用shell脚本控制数据库的相关操作来讲解。

 

一、MySQL的安装

 

安装方法较多,这里介绍最为简单的一种。

打开shell,输入命令行:

sudo apt-get install mysql-server mysql-client

回车后,可自动联网下载并安装(要保持此时是联网状态)。安装过程中,选择Yes即可。过程中,要求输入一个密码(MySQL的进入密码,须记住)。然后等待安装完成。

 

二、MySQL的进入、退出

 

1、打开shell,输入命令行

mysql –u root –p 密码

回车即可进入MySQL

 

注:

Mysql –h 主机名 –u 用户名 –p 密码

-h 用于指定客户端所要登录的,MySQL主机名,登录当前机器参数可忽略

-u 所要登录的用户名

-p 登录密码,若密码为空,可忽略

 

2、输入命令行

exit

回车即可退出MySQL

 

三、MySQL的增删查改等操作

MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。这样就需要我们要想MySQL中存数,首先需要一个数据库,然后在该数据库中创建关系表,利用关系表存储数据。

 

具体操作:

1、创建一个数据库

create database 数据库名;(注意每句关于数据库的操作结束后都有分号“;”)

 

2、使用数据库

use 数据库名;

 

3、创建一个新表

基本形式:create table 表名(列声明);

例:以学生信息为例

create table student                                         表名

(

id int (5) not null auto_increment primary key,   学生ID

name char(5),                              学生姓名

class int(5) unsigned not null,                 学生班级

remark text                                 学生备注

);

 

注:

1not null 表示该值不能为空,不指定时可为空

2auto_increment表示自增,即不必赋值,可自己由1开始增加

alter table 表名auto_increment=1; 可将自增的数值重置为1

3primary key 表示该列的表的主键,本值必须唯一,MySQL将自动索引该列

4unsigned 表示该类型无符号型,此时该列取值016777215

 

数据库可使用的数据类型:

数字类型

整数 tinyint  smallint  mediumint  int  bigint

浮点数 float  double  real  decimal

日期和时间 date  time  datetime  timestamp  year

字符串类型

字符串 char  varchar

文本 tinytext  text  mediumtext  longtext

二进制(可用来储存图片、音乐等)tinyblob blob  mediumblob  longblob

 

4、增加

基本形式: insert into 表名 (列名1,列名2, …) values(1,值2…);

例:插入一名学生信息

insert into student values(1,”Tom”,1,”stu”);

 

若插入部分值时,或不按顺序插入

insert into student(class remark) values(1,”agood student”);

 

注意:intdouble等数据类型添加数据时不需要引号,chartext等数据类型需要引号

 

5、删除

基本形式: delete from 表名 where 删除条件

例:删除ID=1学生信息

delete from student where id=1;

 

where后表示查询条件,可选择不同where name=”Tom”

where后可接一般的比较运算的运算符,例 = < > >= <= !=  

以及一些扩展运算符 is [not] null in like

还可使用 or and 进行组合查询

 

6、查找

基本形式: select 列名称 from 表名 where 查找条件

例:查找ID=1 的学生信息

select * from student where id=1;

 

注意

1* 位置代表要查询的数据, * 表示显示满足查找条件的所有数据,还可以替换为某一需要的数据,例

2Select name from student where class=1; (查找班级为1的学生的名字,最终显示结果只有班级和名字,不会显示ID等内容)

 

7、更改

基本形式: update 表名 set 列名称=新值 where 更改条件

update student set name=”John” where id=1;

 

注意:每次更改只能修改一项信息,若同时修改两项内容,则会报错。

 

8、向数据表中添加新的一列

基本形式: alter table 表名 add 列名列数据类型 after 插入位置

例:在班级后插入goal分数

alter table student add goal double afterclass;

 

9、修改数据表中的某一列

基本形式: alter table 表名 change 列名称列新名称新数据类型;

例:将成绩一列修改为学生住址

alter table student change goal address char;

 

10、删除数据表中的某一列

基本形式: alter table 表名 drop 列名称;

例:删除学生住址这一列

alter table student drop address;

 

11、重新命名表

基本形式: alter table 表名 rename 新表名;

例:将student修改为 studt

alter table student rename studt;

 

四、MySQL的一些其他操作

 

1、显示数据库

show databases;

 

2、显示数据表

show tables;

 

3、显示数据表的结构

desc 数据表名;

describe 数据表名;

 

4、删除表

drop tables 表名;

 

5、输出数据库

drop database 库名;

 

6、备份数据库

mysqldump –u root –p –opt 数据库名>备份名;

 

7、恢复

mysql –u root –p 数据库名<备份名;

 

8、修改密码

打开shell,输入命令行

mysqladmin –u root –p password 新密码

在输入旧密码后完成修改

 

五、利用shell脚本对MySQL进行操作

 

mysql –u root –p 密码 <<EOF

 

代码段

 

EOF

 

说明:在代码部分只需要写入要对数据库进行的操作即可,然后在shell中运行改脚本即可实现对数据库的操作。

 

注意:

1、在运行脚本后,会出现警告,由于将密码写在了.sh文件里,所以会出现安全警告。

解决办法

利用MySQL的配置文件

shell中使用命令行

vi .my.snf

然后编辑vi

 

[client]

password=密码

保存退出

以后每次进入数据库,输入命令行

mysql –u root

即可进入

 

2、代码部分只能输入静态部分,不可动态改变。要实现动态改变有两种方法

 

1、需对参数添加引号

(实现动态查找)

#!/bin/bash

 

read a (读入数据)

 

mysql -u root <<EOF

    usestu;

       select* from student where name="$a"; (添加引号,无论什么数据类型都要加引号)

EOF

 

2、进行引用

例(实现动态查找)

#!/bin/bash

 

read a(读入数据)

cmd=" select* from stu.student where name='${a}'"(${a}外添加单引号)

cnt=$(mysql –u root-s -e "${cmd}")

echo"${cnt}"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值