1.MySQL存储引擎的配置
查看服务支持的存储引擎
查看默认存储类型
更改表的存储引擎
设置数据库服务默认使用的存储引擎
1.1 查看存储引擎信息
mysql> SHOW ENGINES\G
 
1.2 查看默认存储类型
mysql> SHOW VARIABLES LIKE 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
 
1.3 修改默认存储引擎
1.3.1 指令修改
mysql> SET default_storage_engine=MyISAM;
mysql> SHOW VARIABLES LIKE 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | MyISAM |
+------------------------+--------+
1.3.2 配置文件修改
]# vim /etc/my.cnf
...
default_storage_engine=MEMORY   //改用MEMORY引擎
]# systemctl restart mysqld.service
mysql> SHOW VARIABLES LIKE 'default_storage_engine';
 
2.数据导入、导出
2.1 将/etc/passwd文件导入MySQL数据库
2.1.1 新建userdb库、user表
mysql> CREATE DATABASE userdb;
mysql> USE userdb;
mysql> CREATE TABLE user(
    -> name varchar(24) NOT NULL,
    -> passwd varchar(48) DEFAULT 'x',
    -> uid int(5) NOT NULL,
    -> gid int(5) NOT NULL,
    -> fullname varchar(128),
    -> homedir varchar(64) NOT NULL,
    -> shell varchar(24) NOT NULL
    -> );
mysql> DESC user;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(24) | NO   |     | NULL    |       |
| passwd   | varchar(48) | YES  |     | x       |       |
| uid      | int(5)      | NO   |     | NULL    |       |
| gid      | int(5)      | NO   |     | NULL    |       |
| fullname | varchar(128) | YES  |     | NULL    |       |
| homedir  | varchar(64) | NO   |     | NULL    |       |
| shell    | varchar(24) | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
 
2.1.2 查看mysql的工作文件夹
mysql> SHOW VARIABLES LIKE '%secure_file_priv';
+------------------+-----------------------+
| Variable_name    | Value                 |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
在MySQL 5.7.6版本之后,导入文件只能在secure_file_priv指定的文件夹下。
 
2.1.3 拷贝数据到目录
mysql> system cp /etc/passwd /var/lib/mysql-files/
mysql> LOAD DATA INFILE '/var/lib/mysql-files/passwd'
    -> INTO TABLE user
    -> FIELDS TERMINATED BY ':'
    -> LINES TERMINATED BY '\n';(这条默认有,除非用其他分隔用)
mysql> SELECT COUNT(*) FROM user;
+----------+
| COUNT(*) |
+----------+
|       42 |
+----------+
 
2.1.4 查看user前5条记录,列出用户名、UID
mysql> SELECT name ,uid FROM user LIMIT 5;
+--------+-----+
| name   | uid |
+--------+-----+
| root   |   0 |
| bin    |   1 |
| daemon |   2 |
| adm    |   3 |
| lp     |   4 |
+--------+-----+
 
2.1.5 为user表中的每条记录添加自动编号
mysql> ALTER TABLE user ADD sn int(4) AUTO_INCREMENT PRIMARY KEY FIRST;
mysql> SELECT sn,name FROM user LIMIT 5;
+----+--------+
| sn | name   |
+----+--------+
|  1 | root   |
|  2 | bin    |
|  3 | daemon |
|  4 | adm    |
|  5 | lp     |
+----+--------+
 
2.2 从MySQL数据库中导出查询结果
以将userdb库user表中UID小于100的前10条记录导出为/myload/user1.txt
 
2.2.1 修改默认目录
]# ls -ld /var/lib/mysql-files/
drwxr-x--- 2 mysql mysql 20 2月  13 15:10 /var/lib/mysql-files/
]# mkdir /myload
]# chown mysql /myload
]# ls -ld /myload
drwxr-xr-x 2 mysql root 6 2月  13 15:37 /myload
# vim /etc/my.cnf 
[mysqld]
...
secure_file_priv="/myload"
]# systemctl restart mysqld 
mysql> mysql> SHOW VARIABLES LIKE 'secure_file_priv';
 
2.2.2 导出user表中UID小于5的记录
如果以默认的'\n' 为行分隔,导出操作同样可不指定LINES TERMINATED BY:
mysql> SELECT * FROM userdb.user1 WHERE uid<5;
+--------+--------+-----+-----+----------+----------------+---------------+
| name   | passwd | uid | gid | fullname | homedir        | shell         |
+--------+--------+-----+-----+----------+----------------+---------------+
| root   | x      |   0 |   0 | root     | /root          | /bin/bash     |
| bin    | x      |   1 |   1 | bin      | /bin           | /sbin/nologin |
| daemon | x      |   2 |   2 | daemon   | /sbin          | /sbin/nologin |
| adm    | x      |   3 |   4 | adm      | /var/adm       | /sbin/nologin |
| lp     | x      |   4 |   7 | lp       | /var/spool/lpd | /sbin/nologin |
+--------+--------+-----+-----+----------+----------------+---------------+
导出:
mysql> SELECT * FROM userdb.user1 WHERE uid<5
    -> INTO OUTFILE '/myload/user1.txt'
    -> FIELDS TERMINATED BY ':';
]# wc -l /myload/user1.txt
5 /myload/user1.txt
 
3.操作表记录
表记录的插入
表记录的更新
表记录的查询
表记录的删除
 
3.1 删除test.user1表的所有记录
mysql> DELETE FROM user1;
mysql> SELECT * FROM stu_info;
 
3.2 给t1插入三条数据
mysql> INSERT t1 VALUES
    -> ('Jim','girl',24),
    -> ('Tom','boy',21),
    -> ('Lily','girl',20);
 
3.3 只插入部分字段的值
mysql> INSERT INTO t1(name,age)
    -> VALUES('Jerry',27);
3.3 更新表记录时,若未限制条件,则适用于所有记录
mysql> UPDATE t1 SET age=10;
则所有人年龄都是10
 
3.4 更新表记录时,可以限制条件,只对符合条件的记录有效
mysql> UPDATE t1 SET age=20
    -> WHERE gender='boy';
 
3.5 删除表记录时,可以限制条件,只删除符合条件的记录
mysql> DELETE FROM t1 WHERE age < 18;
 
3.6 删除表记录时,如果未限制条件,则会删除所有的表记录
mysql> DELETE FROM t1;
 
4.查询及匹配条件
 
4.1 查询stu_info表一共有多少条记录
mysql> SELECT count(*) FROM stu_info;
 
4.2 计算stu_info表中各学员的平均年龄、最大年龄、最小年龄
mysql> SELECT avg(age),max(age),min(age) FROM stu_info;
 
4.3 计算stu_info表中男学员的个数
mysql> SELECT count(gender) FROM stu_info WHERE gender='boy';
 
4.4 列出stu_info表中年龄为21岁的学员记录
mysql> SELECT * FROM stu_info WHERE age=21;
 
4.5 列出stu_info表中年龄超过21岁的学员记录
mysql> SELECT * FROM stu_info WHERE age>21;
 
4.6 列出stu_info表中年龄大于或等于21岁的学员记录
mysql> SELECT * FROM stu_info WHERE age>=21;
 
4.7 列出stu_info表中年龄在20岁和24岁之间的学员记录
mysql> SELECT * FROM stu_info WHERE age BETWEEN 20 and 24;
 
4.8 列出stu_info表中年龄小于23岁的女学员记录
mysql> SELECT * FROM stu_info WHERE age < 23 AND gender='girl';
 
4.9 列出stu_info表中年龄小于23岁的学员,或者女学员的记录:
mysql> SELECT * FROM stu_info WHERE age < 23 OR gender='girl';
 
4.10 如果某个记录的姓名属于指定范围内的一个,则将其列出
mysql> SELECT * FROM stu_info WHERE name IN
    -> ('Jim','Tom','Mickey','Minnie');
 
4.11 计算1234与5678的和
mysql> SELECT 1234+5678;
 
4.12 输出stu_info表各学员的姓名、15年后的年龄
mysql> SELECT name,age+15 FROM stu_info;
 
4.13 列出stu_info表中姓名以“J”开头的学员记录
mysql> SELECT * FROM stu_info WHERE name LIKE 'J%';
 
4.14 列出stu_info表中姓名以“J”开头且只有3个字母的学员记录
mysql> SELECT * FROM stu_info WHERE name LIKE 'J__';
 
4.15 列出stu_info表中姓名以“J”开头且以“y”结尾的学员记录
mysql> SELECT * FROM stu_info WHERE name REGEXP '^J.*y$';
效果等同于:
mysql> SELECT * FROM stu_info WHERE name Like 'J%y';
 
4.16 列出stu_info表中姓名以“J”开头或者以“y”结尾的学员记录:
mysql> SELECT * FROM stu_info WHERE name REGEXP '^J|y$';
效果等同于:
mysql> SELECT * FROM stu_info WHERE name Like 'J%' OR name Like '%y';
 
4.17 列出stu_info表的所有记录,按年龄排序
mysql> SELECT * FROM stu_info GROUP BY age (ASC);(由小到大,默认)
mysql> SELECT * FROM stu_info GROUP BY age DESC;(由大到小)
 
4.18 限制查询结果的输出条数,LIMIT
mysql> SELECT * FROM stu_info LIMIT 3;
 
4.19 列出stu_info表中年龄最大的3条学员记录
mysql> SELECT * FROM stu_info GROUP BY age DESC LIMIT 3;
 
4.20 分组查询结果,GROUP BY
针对stu_info表,按性别分组,分别统计出男、女学员的人数:
mysql> SELECT gender,count(gender) FROM stu_info GROUP BY gender;
+--------+---------------+
| gender | count(gender) |
+--------+---------------+
| boy    |             3 |
| girl   |             2 |
+--------+---------------+
列出查询字段时,可以通过AS关键字来指定显示别名,比如上述操作可改为:
mysql> SELECT gender AS '性别',count(gender) AS '人数'
    -> FROM stu_info GROUP BY gender;
+--------+--------+
| 性别   | 人数   |
+--------+--------+
| boy    |      3 |
| girl   |      2 |
+--------+--------+

三十一.MySQL存储引擎 、 数据导入导出 管理表记录 匹配条件的更多相关文章

  1. Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件

    一.SQL数据导入/导出 目标: 使用SQL语句完成下列导出.导入操作: 将/etc/passwd文件导入userdb库userlist表并给每条记录加编号 将userdb库userlist表中UID ...

  2. sqoop用法之mysql与hive数据导入导出

    目录 一. Sqoop介绍 二. Mysql 数据导入到 Hive 三. Hive数据导入到Mysql 四. mysql数据增量导入hive 1. 基于递增列Append导入 1). 创建hive表 ...

  3. Mysql学习_02_mysql数据导入导出

    二.参考资料 1.MySQL 数据导出

  4. MySQL存储引擎:InnoDB和MyISAM的差别/优劣评价/评测/性能测试

    InnoDB和MyISAM简介 MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的 顺序访问方法) 的缩写 ...

  5. MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述

    MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...

  6. {MySQL存储引擎介绍}一 存储引擎解释 二 MySQL存储引擎分类 三 不同存储引擎的使用

    MySQL存储引擎介绍 MySQL之存储引擎 本节目录 一 存储引擎解释 二 MySQL存储引擎分类 三 不同存储引擎的使用 一 存储引擎解释 首先确定一点,存储引擎的概念是MySQL里面才有的,不是 ...

  7. SQL学习笔记三(补充-1)之MySQL存储引擎

    阅读目录 一 什么是存储引擎 二 mysql支持的存储引擎 三 使用存储引擎 一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的 ...

  8. 重新学习MySQL数据库3:Mysql存储引擎与数据存储原理

    重新学习Mysql数据库3:Mysql存储引擎与数据存储原理 数据库的定义 很多开发者在最开始时其实都对数据库有一个比较模糊的认识,觉得数据库就是一堆数据的集合,但是实际却比这复杂的多,数据库领域中有 ...

  9. MYSQL初级学习笔记二:数据表相关操作及MySQL存储引擎!(视频序号:初级_5,7-22|6)

    知识点三:数据表相关操作(5,7-22) --------------------------------整型--------------------------------- --测试整型 CREA ...

随机推荐

  1. Python socket编程 (2)--实现文件验证登入

    可以实现从客户端输入账号和密码然后发送到服务器进行验证,实现用户登入校正操作. 服务器: import socket import json server = socket.socket() serv ...

  2. Vue使用指南(一)

    Vue Vue:前台框架 渐进式JavaScript框架 渐进式:vue可以控制页面的一个局部,vue也可以控制整个页面,vue也能控制整个前端项目     -- 根据项目需求,来决定vue控制项目的 ...

  3. FTP搭建注意事项

    正常的FTP搭建步骤很简单,随便网搜一篇文章就出来了 下面提出一个网址可供学习 https://blog.csdn.net/m0_38044299/article/details/81627607 但 ...

  4. jquery判断数据类型源码解读

    var class2type = {}; ("Boolean Number String Function Array Date RegExp Object Error").spl ...

  5. 安卓开发之利用runOnUiThread在子线程更新UI

    package com.lidaochen.test; import android.graphics.Bitmap; import android.graphics.BitmapFactory; i ...

  6. SSM - SpringBoot - SpringCloud

    SSM框架 Spring + Spring MVC + MyBatis:标准MVC模式 继 SSH (Struts+Spring+Hibernate)之后,主流的 Java EE企业级 Web应用程序 ...

  7. MongoDB简介,安装,增删改查

    MongoDB到底是什么鬼? 最近有太多的同学向我提起MongoDB,想要学习MongoDB,还不知道MongoDB到底是什么鬼,或者说,知道是数据库,知道是文件型数据库,但是不知道怎么来用 那么好, ...

  8. jmeter 5.1.1版本 进行抓包的时候弹出输入密码

    先描述一下如何配置Jmeter 先新建一个Thread Group,比如我命令为抓包 新建一个HTTP(S) Test Script Recorder,进行如下的配置, 配置端口,我这边设置为8899 ...

  9. 13. 请看TED 的演讲, 谈谈你对压力的看法,以及怎么和别人合作, 帮助别人,把压力转化为动力,在互相帮助的环境中成长。------------答题者:徐潇瑞

    看了ted的演讲,我觉得压力就像一根弹簧,有多大的压力,它就有多大的弹力:现实中只要你学会用一种永远不服输的顽强精神,去对待人生和社会中遇到的一切困难与挫折,宠辱不惊的看云卷云舒,悟潮起潮落.可是存在 ...

  10. ES6中let、const和var的区别

    一.let 1.基本用法 ES6 新增了let命令,用来声明变量. let 的用法类似于 var,但所声明的变量只在 let 命令所在的代码块内有效(一个“{}”相当于一个代码块) { let a = ...