0
点赞
收藏
分享

微信扫一扫

MySQL入门指南6(视图,用户管理,存储引擎,数据类型)

点亮自己的那盏灯 2022-10-12 阅读 49

前期回顾:

        MySQL入门指南1(进入命令行,数据库,数据表操作)

        MySQL入门指南2(SQLyog使用,增删改查)

        MySQL入门指南3(常用函数)

        MySQL入门指南4(查询进阶,外连接)

        MySQL入门指南5(索引,约束,事务)


目录

一、视图

        1. 基本概念 

        2. 视图的基本使用

        3. 视图细节

        4. 视图最佳实践

二、用户管理

        1. MySQL用户

        2. MySQL权限

三、数据类型

        1. 数值类型

        2. 字符串类型

        3. 日期类型

四、存储引擎

        1. 基本介绍

        2. 四种主要存储引擎及特点

        3. 细节说明 

        4. 如何选择表的存储引擎 

        5. 修改存储引擎 

五、最后的话


一、视图

        1. 基本概念 

        2. 视图的基本使用

代码演示: 

-- 创建视图
CREATE VIEW emp1 AS SELECT ename,sal,deptno FROM emp;


-- 展示视图信息
SHOW CREATE VIEW emp1;


-- 查找视图
-- 视图创建好之后可以当成一个表使用
SELECT * FROM emp1;


-- 更新视图中的列
ALTER VIEW emp1 AS SELECT ename,sal FROM emp;

-- 删除视图
DROP VIEW emp1;

        3. 视图细节

 代码演示:

-- 视图中的数据变化会影响到基表,基表的数据变化也会影响视图
-- 更改基表中的数据,视图中的数据会发生变化
UPDATE emp
	SET sal = 1000
	WHERE ename = 'BLAKE';

-- 更改视图中的数据,基表中的数据会发生变化	
UPDATE emp1
	SET sal = 5000
	WHERE ename='BLAKE';
	
-- 视图这种可以再使用视图,但数据仍来自于基表
-- 以emp创建视图emp1
CREATE VIEW emp1 AS SELECT ename,sal,deptno FROM emp;

-- 以emp1创建视图emp2
CREATE VIEW emp2 AS SELECT ename,sal FROM emp1;


SELECT * FROM emp;

SELECT * FROM emp1;

SELECT * FROM emp2;

        4. 视图最佳实践


二、用户管理

        1. MySQL用户

代码演示:

-- 创建用户同时指定密码
CREATE USER `newbniz`@`localhost` 
	IDENTIFIED BY '125656556';
	
CREATE USER `haohao`@`localhost` 
	IDENTIFIED BY '123456';
-- 操作mysql数据库	
USE mysql;

-- 查询user表中的user
SELECT `user` FROM `user`;

-- 删除用户
DROP USER `haohao`@`localhost`;

-- 用户修改密码
-- 修改自己的密码
SET PASSWORD = PASSWORD('123456');

-- 修改他人的密码(当前登录用户有该权限)
SET PASSWORD FOR `newbniz`@`localhost` = PASSWORD('123456');

        2. MySQL权限

代码演示:

-- 权限管理
-- 给用户授权  -- IDENTIFIED BY '密码'  若加上这一句则修改密码为该密码
-- 赋予单项权限
GRANT SELECT ON test.* TO `newbniz`@`localhost` ;

-- 赋予多项权限
GRANT SELECT,DELETE,INSERT ON test.* TO `newbniz`@`localhost`;

-- 赋予除GRANT OPTION 外所有简单权限
GRANT ALL ON test.* TO `newbniz`@`localhost` IDENTIFIED BY '123456';

-- 回收用户授权
-- 回收指定权限
REVOKE SELECT ON test.* FROM `newbniz`@`localhost`;

-- 回收所有权限
REVOKE ALL ON test.* FROM `newbniz`@`localhost`;

-- 权限生效指令
FLUSH PRIVILEGES;

三、数据类型

        1. 数值类型

-- 设置为无符号类型只需要在后面加上 UNSIGNED 即可	
CREATE TABLE test17(
	num1 TINYINT NOT NULL DEFAULT 0, -- 未指定UNSIGNED
	num2 TINYINT UNSIGNED NOT NULL DEFAULT 0);  -- 指定UNSIGNED
	
	
	
INSERT INTO test17(num1) 
	VALUES(127);
	
INSERT INTO test17(num2)
	VALUES(255);
	
SELECT * FROM test17;
	

代码演示:

--- 小数
-- M 是小数总位数(小数点前+小数点后)
-- D是小数点后的位数
-- 当小数点后的位数多于D时,会自动四舍五入
-- 小数点前的位数不得大于 M-D,否则会报错
CREATE TABLE test15(
	num1 FLOAT,
	num2 DOUBLE,
	num3 DECIMAL(6,5)); 
	
	
INSERT INTO test15
	VALUES(111111111111.1111111,4111111115151.6548545454545,3.141595654545);

INSERT INTO test15
	VALUES(11111.1111111111,111111111111.1111111111111111,2.666666);


SELECT * FROM test15;
	
CREATE TABLE test16(
	num1 FLOAT,
	num2 DOUBLE,
	num3 DECIMAL); -- 此时M D省略,M默认为10,D默认为0
	               -- 小数点后有小数时,会自动四舍五入
INSERT INTO test16
	VALUES(1.2222222,25.5455,11111112111.52850);
	
	
SELECT * FROM test16;

 

        2. 字符串类型

 

        3. 日期类型

代码如下: 

-- 日期类型有三种
-- 1. date 用于存储 年月日 这样的日期
-- 2. datetime 用于存储 年月日时分秒 这样的日期
-- 3. timestamp 时间戳 ,获取系统当前时间 用于自动记录insert update的时间
-- 我们以这三种日期类型创建一个测试表
CREATE TABLE test11(
	t1 DATE, 
	t2 DATETIME,
	t3 TIMESTAMP);
	
SELECT * FROM test11;

-- 按照不同日期类型对应的格式传入数据
INSERT INTO test11
	VALUES('2011-11-11','2011-11-11 12:45:32',NULL);
	
-- 由于date只能存储年月日,所以当你传入年月日时分秒时会自动取前面的年月日
-- 而detetime能存储年月日时分秒,当我们只传入年月日时,后面的时分秒会自动补为00:00:00	
-- timestamp 传入null时,会自动获取当前系统时间
INSERT INTO test11
	VALUES('2011-01-10 14:45:32','2011-11-11',NULL);
	
DROP TABLE test11;

四、存储引擎

        1. 基本介绍

        2. 四种主要存储引擎及特点

        3. 细节说明 

        4.如何选择表的存储引擎 

        5. 修改存储引擎 

ALTER TABLE 表名 ENGINE = 存储引擎;


五、最后的话

举报

相关推荐

0 条评论