IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> JAVA程序员笔记(第三阶段:数据库)第3篇——视图view、事务transaction、索引 -> 正文阅读

[大数据]JAVA程序员笔记(第三阶段:数据库)第3篇——视图view、事务transaction、索引

视图view

视图是指 数据库中的 一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
和数据库相对应,每次进行查询工作,都需要编写查询代码进行查询;而视图的作用就是不必每次都重新编写查询的SQL代码,而是通过视图直接查询即可。
举个例子:我每天要去查看天然气用量、水费用量、银行卡余额。如果不用视图,那么每天我都要去亲自查看(写查询语句)
使用视图:就相当于我养了三条狗,每条狗负责其中一个查询事务,我每天只需要叫狗去查看就可以了。轻松。

所以视图是虚拟表,本身不存储数据,而是按照指定的方式进行查询。

视图创建

CREATE VIEW 视图名(
查询语句
)

#视图
CREATE VIEW grade_stu_sub_res 
(SELECT s.*,g.gradeName,j.subjectNo,j.classhour,
j.subjectName,r.studentresult,r.ExamDate
FROM grade g
INNER JOIN student s ON g.gradeid = s.gradeId
INNER JOIN `subject` j ON g.gradeid = j.gradeid
INNER JOIN result r ON s.studentNo = r.studentNo
)

视图查询

SELECT 字段名 FROM 视图名;

和选择语句相似,可以查看视图的某几条字段

#查询视图
SELECT gradeName,subjectName FROM grade_stu_sub_res;
SELECT gradeName,classHour FROM grade_stu_sub_res;
SELECT * FROM grade_stu_sub_res;

修改视图

CREATE OR REPLACE VIEW 视图名
SELECT
FROM

查看视图

show tables;

查看数据库中有哪些视图

删除视图

DROP VIEW 视图名;

权限修改

数据库很重要,作为数据库的管理者,可以给其他账户授权,来让其完成特定的人物,或者防止自个人操作不当,损坏数据。
在这里插入图片描述
在这里插入图片描述
添加新账户,供他人使用,在左边设置权限,全局特权能让该账户操作全部的数据库,对象级则能只能操作特定的数据库。
之后,系统会自动组织该账户的一切“越权行为”
ps:记得写主机名。暂时不建议创建其他用户。

创建用户的语句:(一般不用)

#创建用户
CREATE USER `te`@`localhost` IDENTIFIED BY '123456';
#授权
GRANT INSERT,SELECT ON myschool.student TO `te` @`localhost`;

事务transaction

数据库中的事务是指对数据库执行一批操作,这些操作最终要么全部执行成功,要么全部失败;
比如你在取钱的一瞬间断电了,钱没吐,但是余额少了,这谁受得了啊
举例说明:

创建一个表单 张三 李四
id分别为1 2
余额cash

SET autocommit = 0;
#开启事务 begin/START transaction
START TRANSACTION;
UPDATE account SET cash = cash+1000 WHERE id = 1;
UPDATE account SET cash = cash-1000 WHERE id = 2;
#回滚
ROLLBACK;
#提交
COMMIT;
#开起自动提交
SET autocommit =1; 

索引

索引是帮助MySQL高效获取数据的数据结构。
更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。
一般来说索引本身很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中

优点:可以提高数据检索的效率,降低数据库的IO成本
缺点:索引虽然会提高查询效率,但是会占据磁盘空间, 降低更新表的效率

创建表时添加索引

索引类型

先介绍常用的:

  • 主键索引 PRIMARY KEY
    索引列中的值必须唯一的,不允许有空值。

  • 普通索引
    MySQL中基本索引类型,没有限制,允许在定义索引的列中插入重复值和空值。

  • 唯一索引 UNIQUE KEY
    索引列中的值必须是唯一,允许为空值。

  • 全文索引 INDEX
    只能在文本类型CHAR,VARCHAR,TEXT类型字段上创建全文索引。字段长度比较大时,如果创建普通索引,在进行like模糊查询时效率比较低,这时可以创建全文索引。 MyISAM和InnoDB中都可以使用全文索引。

CREATE TABLE news(
id INT(4)
title VARCHAR(200),
1mgUr1 VARCHAR (200),
content TEXT,
#主键索引,主键唯一,只能有一个
PRIMARY KEY(id),
#唯一索引,字段值不能重复,-张表可以有多个
UNIQUE KEY (title),
#常规索引,加快检索速度,通常给where后的条件字段加
INDEX (1mgUrl),
#全文索引,比like模糊匹配检索快
FULLTEXT(content)
)ENGINE=MYISAM

 
#先创建表再创建索引
CREATE TABLE artic (
id INT(4),
title VARCHAR (200),
imgUrl VARCHAR (200),
content TEXT
)

#添加索引
ALTER TABLE artic ADD PRIMARY KEY (id) ;
ALTER TABLE artic ADD UNIQUE KEY tit(title) ;
ALTER TABLE artic ADD INDEX (imgurl) ;
ALTER TABLE artic ADD FULLTEXT (content) ;
#删除索引
#第一种方式
ALTER TABLE artic DROP INDEX imgurl;
ALTER TABLE artic DROP PRIMARY KEY;
#第二种方式
DROP INDEX content ON artic;
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 11:59:57  更:2021-09-30 12:01:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:00:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码