视图是指 数据库中的 一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
和数据库相对应,每次进行查询工作,都需要编写查询代码进行查询;而视图的作用就是不必每次都重新编写查询的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;



