MySQL数据库高级操作

前面已经完成了数据库的一些基本操作,今天要写的主要是一些数据库的较高级的操作。

1、索引

索引是一种单独的、存储在磁盘上的数据结构。使用索引可以快速查找某个或者多列中有特定值得行。

a)创建索引:

可以在简历表的同时进行创建,如:

>CREATE TABLE table1
{
ID INT(20),
NAME VARCHAR(20),
INDEX INDEX_ID(ID),
INDEX INDEX_ID(ID,NAME)
};

可以在已存在的表上简历索引

>ALTER TABLE table1 ADD INDEX INDEX_ID(ID);                                          #结果如图1
>CREATE INDEX INDEX_NAME ON table1(NAME);

b)查看索引

>SHOW INDEX FROM table1 \G;                                                          #结果如图2

c)删除索引

>ALTER TABLE table1 DROP INDEX INDEX_ID;                                             #结果如图3
DROP INDEX INDEX_NAME ON table1;



2、视图

视图就是一个虚拟表,是由数据库中表导出来的。

a)创建视图

>CREATE VIEW VIEW_T AS SELECT IDD NAME FROM table1;                                  #结果如图5
>CREATE VIEW VIEW_T (ID1,NAME1) AS SELECT IDD NAME FROM table1;

b)查看视图

>DESC VIEW_T;                                                                        #结果如图6

c)修改视图

>CREATE OR REPLACE VIEW VIEW_T AS SELECT IDD FROM table1;                            #结果如图8
>ALTER VIEW VIEW_T AS SELECT IDD FROM table1;

d)更新视图

UPDATE VIEW_T SET IDD = 10 WHERE IDD = 1;                                            #结果如图7

e)删除视图

>DROP VIEW IF EXISTS VIEW_T;                                                       



3、触发器

触发时间:对于表 BEFORE、AFTER

对于视图:INSTEAD OF

触发时间:INSERT UPDATE DELETE

a)建立触发器

CREATE TRIGGER trigger_t BEFORE INSERT ON table1
FOR EACH ROW BEGIN
INSERT INTO table2 SET a2 = NEW.a1;
UPDATE test1 SET b2 = b2 + 4;
DELETE FROM test3 WHRER a3 = NEW.a1;
END


>CREATE TABLE test1(a1 INT(20));                                                      #结果如图9
CREATE TABLE test1(a1 INT(20));

>CREATE TRIGGER TRI_test BEFORE INSERT ON test1
FOR EACH ROW INSERT INTO test2 SET a2 = NEW.a1;

INSERT INTO test1
VALUE(1),(1),(3),(5),(8);

SELECT * FROM test1;
SELECT * FROM test2;

b)删除

>DROP TRIGGER TRI_test



///


图1


图2


图3


图4


图5


图6


图7


图8


图9


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值