栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java初学笔记38-【数据库】【mysql 表类型和存储引擎、mysql 视图、mysql管理、mysql练习】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java初学笔记38-【数据库】【mysql 表类型和存储引擎、mysql 视图、mysql管理、mysql练习】

Java初学笔记38
  • 二十四、mysql 表类型和存储引擎
    • 1. 基本介绍
    • 2. 主要的存储引擎/表类型特点
    • 3. 细节
    • 4. 使用示例
    • 5. 如何选择表的存储引擎
    • 6. 修改存储引擎
  • 二十五、视图
    • 1. 概念
    • 2. 视图的基本使用
    • 3. 对视图的总结
    • 4. 视图最佳实践
    • 5. 练习
  • 二十六、mysql管理
    • 1. Mysql 用户
    • 2. 创建用户
    • 3. 删除用户
    • 4. 用户修改密码
    • 5. mysql 中的权限
    • 6. 给用户授权
    • 7. 回收用户授权
    • 8. 权限生效指令
    • 9. 细节说明
    • 10. 练习
  • 二十七 mysql练习

二十四、mysql 表类型和存储引擎 1. 基本介绍

(1)MySQL的表类型由存储引擎(Storage Engines)决定,主要包括MylSAM、innoDB、Memory等。
(2)MySQL 数据表主要支持六种类型,分别是:CSV、Memory、ARCHIVE、MRG_MYISAM、MYISAM、InnoBDB。
(3)这六种又分为两类,一类是”事务安全型”(transaction-safe),比如:InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe)[mysiam和memory].

2. 主要的存储引擎/表类型特点

3. 细节

(1)MylSAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求
(2)InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MylSAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
(3)MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦MySQL服务关闭,表中的数据就会丢失掉,表的结构还在。

4. 使用示例
-- 查看所有的存储引擎
SHOW ENGINES
-- innodb 存储引擎,是前面使用过. -- 1. 支持事务 2. 支持外键 3. 支持行级锁
-- myisam 存储引擎
CREATE TABLE t28 (
id INT, `name` VARCHAR(32)) ENGINE MYISAM
-- 1. 添加速度快 2. 不支持外键和事务 3. 支持表级锁
START TRANSACTION;
SAVEPOINT t1
INSERT INTO t28 VALUES(1, 'jack');
SELECt * FROM t28;
ROLLBACK TO t1
-- memory 存储引擎
-- 1. 数据存储在内存中[关闭了 Mysql 服务,数据丢失, 但是表结构还在]
-- 2. 执行速度很快(没有 IO 读写) 3. 默认支持索引(hash 表)
CREATE TABLE t29 (
id INT, `name` VARCHAR(32)) ENGINE MEMORY
DESC t29
INSERT INTO t29
VALUES(1,'tom'), (2,'jack'), (3, 'hsp');
SELECt * FROM t29
-- 指令修改存储引擎
ALTER TABLE `t29` ENGINE = INNODB
5. 如何选择表的存储引擎

(1)如果应用不需要事务,处理的只是基本的CRUD操作,那么MylSAM是不二选择,速度快
(2)如果需要支持事务,选择lnnoDB。
(3)Memory存储引擎就是将数据存储在内存中,由于没有磁盘I./O的等待,速度极快。但由于是内存存储引擎,所做的任何修改在服务器重启后都将、消失。(经典用法用户的在线状态().)

6. 修改存储引擎
ALTER TABLE 表名 ENGINE = 引擎名
二十五、视图 1. 概念

(1)视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含列,其数据来自对应的真实表(基表)
(2)视图和基表关系的示意图

2. 视图的基本使用
(1)create view 视图名 as select 语句
(2)alter view 视图名 as select语句  --更新成新的视图
(3)SHOW CREATE VIEW 
(4)drop view  视图名1  视图名2
3. 对视图的总结

(1)视图是根据基表(可以是多个基表)来创建的,视图也可以根据视图来创建,视图是虚拟的表,创建视图后,到数据库去看,对应视图只有一个视图结构文件(形式: 视图名.frm)
(2)视图也有列,数据来自基表
(3)通过视图可以修改基表的数据
(4)基表的改变,也会影响到视图的数据

4. 视图最佳实践

(1)安全。一些数据表有着重要的信息。有些字段是保密的,不能让用户直接看到。这时就可以创建一个视图,在这张视图中只保留一部分字段。这样,用户就可以查询自己需要的字段,不能查看保密的字段。
(2)性能。关系数据库的数据常常会分表存储,使用外键建立这些表的之间关系。这时,数据库查询通常会用到连接(JOIN)。这样做不但麻烦,效率相对也比较低。如果建立一个视图,将相关的表和字段组合在一起,就可以避免使用JOIN查询数据。
(3)灵活。如果系统中有一张旧的表,这张表由于设计的问题,即将被废弃。然而,很多应用都是基于这张表,不易修改。这时就可以建立一张视图,视图中的数据直接映射到新建的表。这样,就可以少做很多改动,也达到了升级数据表的目的。

5. 练习


二十六、mysql管理 1. Mysql 用户

(1)mysql中的用户,都存储在系统数据库mysql中 user表中。
(2)其中user表的重要字段说明:
【1】host:允许登录的“位置”,localhost表示该用户只允许本机登录,也可以指定ip地址,比如:192.168.1.100
【2】user:用户名;
【3】authentication string:密码,是通过mysql的password()函数加密之后的密码。

2. 创建用户
create user‘用户名’@’允许登录位置’identified by‘密码’ 

说明:创建用户,同时指定密码

3. 删除用户
drop user‘用户名’ @'允许登录位置'
4. 用户修改密码

修改自己的密码:

set password = password(密码');

修改他人的密码(需要有修改用户密码权限):

set password for '用户名'@′登录位置' =password('密码');
5. mysql 中的权限

6. 给用户授权

7. 回收用户授权

基本语法:

revoke 权限列表 on  库.对象名  from '用户名'@'登录位置';
8. 权限生效指令

如果权限没有生效,可以执行下面命令.基本语法:

FLUSH PRIVILEGES;
9. 细节说明

(1)在创建用户的时候,如果不指定Host,则为%,%表示表示所有IP都有连接权限

create user XXX;

(2)也可以这样指定

create user 'xxx'@'192.168.1.%’

表示 xxx用户在192.168.1.*的ip可以登录mysql
(3)在删除用户的时候,如果host 不是%,需要明确指定‘用户’@‘host值’

10. 练习


二十七 mysql练习

















转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692835.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号