事务
#创建银行卡
CREATE table account(
cid int UNIQUE,
cname VARCHAR(20),
money DECIMAL(10,2) UNSIGNED
)
INSERT into account VALUES(12345,'李嘉欣',1000);
INSERT into account VALUES(12346,'徐杰',2000);
#管理手动事务的语句
/* 开启事务
BEGIN
提交事务
COMMIT
回滚事务
ROLLBACK*/
BEGIN;
#执行监控的SQL语句
UPDATE ACCOUNT SET MONEY = MONEY-1000 WHERE CID = 12345;
UPDATE ACCOUNT SET MONEY = MONEY+1500 WHERE CID = 12346;
#结果(提交或者回滚)
#提交事务
COMMIT
#回滚事务
ROLLBACK
SELECT * FROM ACCOUNT
#MYSQL默认自动提交事务
#查看默认设置
show VARIABLES like 'autocommit'
#关闭/打开默认自动提交
SET AUTOCOMMIT = OFF
SET AUTOCOMMIT = ON
索引
#创建十万条数据
CREATE PROCEDURE pro_apple2()
BEGIN
DECLARE i int DEFAULT 1;
while i<=100000
DO
INSERT into student VALUES(null,'七喜','女',23,'学习','1314A');
SET i = i+1;
END while;
END
call pro_apple2()
SELECT * from student
SELECT COUNT(*) from student
SELECT name from student where name LIKE '大喜'
#创建普通索引索引在name上
CREATE INDEX index_name on student(name)
#删除索引
DROP index index_name on student;
#创建唯一索引
CREATE UNIQUE index index_id on student(id)
#多列索引
select name from student where name = '七喜' and id = 1
视图
#员工表
CREATE TABLE users(
userid int,
username VARCHAR(20))
#客户类型表
CREATE TABLE types(
typeid int,
typename VARCHAR(20))
#客户来源表
CREATE TABLE source(
sourceid int,
sourcename VARCHAR(20))
#客户情况表
CREATE TABLE conditions(
conid int,
conname VARCHAR(20))
#客户表
CREATE TABLE customer(
cid int,
cname VARCHAR(20),
conid int,
sourceid int,
userid INT,
typeid int)
#四表联查
select c.cid,c.cname,u.username,s.sourcename,co.conname,t.typename from customer c
left join users u on c.userid = u.userid
left join source s on c.sourceid = s.sourceid
left join conditions co on c.conid = co.conid
left join types t on c.typeid = t.typeid
#创建视图
CREATE view v_customer as /*加SELECT 语句*/select c.cid,c.cname,u.username,s.sourcename,co.conname,t.typename from customer c
left join users u on c.userid = u.userid
left join source s on c.sourceid = s.sourceid
left join conditions co on c.conid = co.conid
left join types t on c.typeid = t.typeid
SELECT * from v_customer
#查看视图 DESC 视图名字
DESC v_customer
#查看视图创建语句 SHOW CREATE VIEW 视图名字;
SHOW CREATE VIEW v_customer
#调用视图 SELECT 列名 ... FROM 视图名字;
/*修改视图
语法:CREATE OR REPLACE VIEW 视图名 AS <SELECT 语句>;
ALERT VIEW 视图名 AS <SELECT 语句>;*/
/*删除视图
DROP VIEW [ IF EXISTS ] 视图名字1 , 视图名字2 */
数据库备份和恢复
#数据文件备份:手动复制 只支持MYISAM存储引擎的文件
CREATE table bbb(
i INT
)ENGINE = MYISAM
#单表备份 SELECT */字段列表 INTO OUTFILE ‘文件所在路径’ FORM 数据源;
#sql备份整个库 mysqldump /mysqldump.exe -uroot -p[password] 数据库名字 > 外部文件路径( 建议使用.sql文件);
#sql备份多张表 mysqldump /mysqldump.exe -uroot -p123 数据库名字 [数据表名字1] [数据表名字2] ... > 外部文件路径(建议使用.sql文件 );
#数据库恢复
/*单表恢复 LOAD DATA INFILE 文件所在路径 INTO TABLE 表名 */
/*sql恢复
方法1.mysql -h服务器地址 -u用户名 -p密码 数据库名字 < 备份文件路径
方法2.source 备份文件路径*/