10分钟学会MySQL基础教程

10分钟学会MySQL基础操作

1分钟安装

Part1:写在最前

MySQL安装的方式有三种:

rpm包安装

二进制包安装

源码安装

这里我们推荐二进制包安装,无论从安装速度还是用于生产库安装环境来说,都是没问题的。现在生产库一般采用MySQL5.6,测试库采用MySQL5.7。

MySQL5.6安装看这里

http://suifu.blog.51cto.com/9167728/1846671

MySQL5.7安装看这里

http://suifu.blog.51cto.com/9167728/1855415

8分钟数据库操作

Part1:登录

MySQL的登录方式为:

-u为用户名,-p为密码,如果您用了上述本文的安装脚本,默认密码为MANAGER

[[email protected] ~]# mysql -uroot -pMANAGER

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 11

Server version: 5.7.16-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql>

Part2:表基础操作

查看数据库中有哪些库

mysql> show databases;

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

| Database           |

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

| information_schema |

| he1                |

| he3                |

| maxscale           |

| mysql              |

| performance_schema |

| sys                |

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

7 rows in set (0.00 sec)


增删改查

同Excel一样,数据库中也是要增删改查的主要涉及的语法如下:

查:

首先选择相应的库

mysql> use maxscale

Database changed

select * from 表名;是查询这张表所有内容的意思;

select 列名,列名 from 表名;是查询这张表想看的列内容;

mysql> select a,b from helei;

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

| a      | b    |

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

| HE3    | a    |

| 写入   | b    |

| 测试   | c    |

| 于浩   | d    |

| 贺磊   | e    |

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

6 rows in set (0.00 sec)

增:

insert into 表名 values(‘想插入的内容‘); 往表中插入一条记录的意思;

mysql> insert into helei values(‘插入‘,‘f‘);

Query OK, 1 row affected (0.01 sec)

mysql> select a,b from helei;

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

| a      | b    |

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

| HE3    | a    |

| 写入   | b    |

| 测试   | c    |

| 于浩   | d    |

| 贺磊   | e    |

| 插入   | f    |

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

6 rows in set (0.00 sec)

我这里表名叫helei;

删:

delete from helei where b=‘f‘;删除helei表中b列是f的所有记录;

mysql> delete from helei where b=‘f‘;

Query OK, 1 row affected (0.01 sec)

mysql> select * from helei;

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

| a      | b    |

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

| HE3    | a    |

| 写入   | b    |

| 测试   | c    |

| 于浩   | d    |

| 贺磊   | e    |

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

5 rows in set (0.00 sec)

可以看到这里b列为f的整个一行就被删除掉了。

改:

update 表名 set 列名=‘改成所需内容‘ where 限定条件。

mysql> update helei set b=‘改‘ where a=‘贺磊‘;

Query OK, 1 row affected (0.01 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from helei;

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

| a      | b    |

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

| HE3    | a    |

| 写入   | b    |

| 测试   | c    |

| 于浩   | d    |

| 贺磊   | 改   |

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

5 rows in set (0.00 sec)

表级操作

创建表

创建表t,这里用生产库的来做例子,id列自增主键,log为varchar类型,可以存30个字符;

mysql> CREATE TABLE `t` (

-> `id`  int UNSIGNED NOT NULL AUTO_INCREMENT ,

-> `log`  varchar(30) NOT NULL DEFAULT ‘‘ ,

-> PRIMARY KEY (`id`)

-> )

-> ;

Query OK, 0 rows affected (0.01 sec)

删除表

删除表t,整表删除;

mysql> drop table t;

Query OK, 0 rows affected (0.02 sec)

Part3:库基础操作

创建库

mysql> CREATE DATABASE helei DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

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

| Database           |

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

| information_schema |

| he1                |

| he3                |

| helei              |

| maxscale           |

| mysql              |

| performance_schema |

| sys                |

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

8 rows in set (0.00 sec)

删除库

删除名为helei的库,注意,这一操作会删除掉helei库中所有的表;

mysql> drop database helei;

Query OK, 0 rows affected (0.00 sec)

1分钟系统级操作

Part1:启停数据库

[[email protected] ~]# /etc/init.d/mysqld status

SUCCESS! MySQL running (3173)

[[email protected] ~]# /etc/init.d/mysqld stop

Shutting down MySQL.... SUCCESS!

[[email protected] ~]# /etc/init.d/mysqld start

Starting MySQL.. SUCCESS!

附录

Part1:常用SQL

创建和授权用户

CREATE USER ‘helei‘@‘%‘ IDENTIFIED BY ‘MANAGER‘;

GRANT SELECT,insert,update,delete ON *.* TO ‘helei‘@‘%‘;

创建数据库:

CREATE DATABASE
www CHARACTER SET utf8 COLLATE utf8_bin;

密码变更:

SET
PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘MANAGER‘);

 

统计哪些ip连接

mysql> select
substring_index(host,‘:‘, 1) from information_schema.processlist;

统计每个IP连接数:

mysql> select
substring_index(host,":", 1) ip, count(*)  from information_schema.processlist  group by 
ip;

到库级别的ip连接数查看:

mysql> select db,
substring_index(host,":", 1) ip, count(*)  from information_schema.processlist  group by db, ip;

查看当前连接数

mysql>
show status like ‘Threads%‘;

粗略统计每张表的大小

mysql> select
table_schema,table_name,table_rows from tables order by table_rows desc;

要想知道每个数据库的大小的话,步骤如下:

1、进入information_schema 数据库(存放了其他的数据库的信息)

use
information_schema;

2、查询所有数据的大小:

select
concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables;

3、查看指定数据库的大小:

比如查看数据库home的大小

select
concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables where
table_schema=‘home‘;

4、查看指定数据库的某个表的大小

比如查看数据库home中 members 表的大小

select
concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables where
table_schema=‘home‘ and table_name=‘members‘;

 

无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。 

SET
FOREIGN_KEY_CHECKS = 0;

删除完成后设置

SET
FOREIGN_KEY_CHECKS = 1;

其他:

关闭唯一性校验

set
unique_checks=0;

set
unique_checks=1;

变更字符集

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;

添加主键

alter table `helei` add column `id` int(10) not null auto_increment
primary key comment ‘主键‘ first;   但会锁表,先在测试库中测试时间,如果时间长,尝试利用pt工具

重命名表

alter
table helei rename to helei_old;

锁表(用户退出则失效)

flush
tables with read lock;unlock
table;

锁某张表

lock tables
helei read;

找出id是奇数和偶数

select * from t where id &1

select * from
t where id=(id>>1)<<1

查看数据库已运行时间

show
global status like ‘uptime‘;


——总结——

操作MySQL数据库是一项较为复杂的工作,限于文章篇幅原因,这里仅仅介绍冰山一角。由于笔者的水平有限,编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。

时间: 2024-08-04 03:33:01

10分钟学会MySQL基础教程的相关文章

10分钟学会Linux

10分钟学会Linux有点夸张,但是可以让一个新手初步熟悉Linux中最重要最基本的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是非常不错的. 英文地址:http://freeengineer.org/learnUNIXin10minutes.html 中文译文如下: 前言  这是我已经在过去的几年中给学生(CAD用户培训)培训中所使用的材料. 其目的是在一个页面上就可以使用 UNIX的shell的基础命令.(这样他们就没有打电话问我了). 本文档受版权保护,但根据GFDL的条款自

10分钟学会基于ASP.NET的 JQuery实例 (转)

本文介绍如何在ASP.NET(ASP.NET/AJAX)里使用基于JQuery的AJAX技术.(源代码下载见最后) 在使用JQuery前,请到www.jquery.com下载最新版本的js代码,然后再代码里使用 <script src="_scripts/jQuery-1.2.6.js" type="text/javascript"></script>即可,当然,由于微软已经把JQuery集成到VS里,所以你可以到WWW.ASP.NET/aj

MySql基础教程(三)——查询训练

在MySql两轮基础的学习之后,来一波实战演习... 三张表:学生表,课程表,成绩表. 建表详细信息见 MySql基础教程(一)

[转]10分钟梳理MySQL知识点:揭秘亿级高并发数据库调优与最佳实践法则

转:https://mp.weixin.qq.com/s/RYIiHAHHStIMftQT6lQSgA 做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离... 数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 今天我们用10分钟,重点梳理一遍以下几方面: 数据库知识点汇总: 数据库事务特性和隔离级别: 详解关系型数据库.索引与锁机制: 数据库调优与最佳实践: 面试考察点及加分项. 一.数据库的不同类型 1.常用的关系型数

10分钟梳理MySQL核心知识点

今天我们用10分钟,重点梳理一遍以下几方面: 数据库知识点汇总: 数据库事务特性和隔离级别: 详解关系型数据库.索引与锁机制: 数据库调优与最佳实践: 面试考察点及加分项. 一.数据库的不同类型 1.常用的关系型数据库 Oracle:功能强大,主要缺点就是贵 MySQL:互联网行业中最流行的数据库,这不仅仅是因为MySQL的免费.可以说关系数据库场景中你需要的功能,MySQL都能很好的满足,后面详解部分会详细介绍MySQL的一些知识点 MariaDB:是MySQL的分支,由开源社区维护,Mari

10分钟学会Less开发环境搭建与初体验

Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 今天看一下,10分钟能不能手把手快速教会你Less环境搭建以及使用入门. Less环境搭建: 1).安装nodejs.打开命令提示符(win+r),分别输入node -v以及npm -v如果返回版本号说明你安装成功了 2).安装less.在"命令提示符"下运行命令"npm install less -g" 3).配

10分钟学会理解和解决MySQL乱码问题

本文将详细介绍MySQL乱码的成因和具体的解决方案 MySQL出现乱码的原因 要了解为什么会出现乱码,我们就先要理解:从客户端发起请求,到MySQL存储数据,再到下次从表取回客户端的过程中,哪些环节会有编码/解码的行为.为了更好的解释这个过程,博主制作了两张流程图,分别对应存入和取出两个阶段. 存入MySQL经历的编码转换过程 上图中有3次编码/解码的过程(红色箭头).三个红色箭头分别对应:客户端编码,MySQL Server解码,Client编码向表编码的转换.其中Terminal可以是一个B

10分钟学会Python函数基础知识

看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行.Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语句通过一个函数名称来调用. 有了函数,我们可以在很大程度上减少复制及粘贴代码的次数了(相信很多人在刚开始时都有这样的体验).我们可以把相同的代码可以提炼出来做成一个函数,在需要的地方只需要调用即可.那么,这样就提高了代码的

10分钟学会php面相对象基础(Ⅳ)

子曰:"温故而知新,可以为师矣" 一二三中的内容,整理目录如下: 建立 class person{...} 实例化class   $p1 = new person(); 继承类 class children extend person{...} 继承中说到了可以增加自己的属性和方法: 两个方法 构造方法 __construct 和 析构方法 __destruct; private,protected,public这三种等级的属性.方法已经调用的限制: 可以通过__construct 来