栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 数据挖掘与分析

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;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/278566.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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