首页 > 数据库 >事务、索引、视图、数据库备份和恢复

事务、索引、视图、数据库备份和恢复

时间:2024-03-22 17:01:10浏览次数:34  
标签:join name int 备份 视图 索引 CREATE SELECT

事务

#创建银行卡
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    备份文件路径*/

标签:join,name,int,备份,视图,索引,CREATE,SELECT
From: https://blog.csdn.net/Anyway_01/article/details/136945932

相关文章

  • 索引
    在数据库中,索引(Index)是一种用于快速查找和访问数据库表中特定行的数据结构。索引类似于书籍的目录,它们提供了一个快速查找特定数据行的方法,而不必扫描整个表。 索引通常基于一个或多个表的列,这些列的值会按照一定的规则(例如升序或降序)进行排序。当您在数据库表上创建索引时,数......
  • 视图
    定义:是一种虚拟表,和普通表一样使用,不包含任何实际存储的数据,而是通过执行定义的查询来动态生成数据。这是mysql5.0.1版本出现的新特性,通过表动态生成 在数据库中,视图(View)是基于查询结果的虚拟表,它是一个具有字段和行的结构化数据集。视图是一个虚拟表,不包含任何实际存储的数......
  • Mysql索引结构与失效场景
    注:Mysql排序实例:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html1、B树与B+树之间的区别B树:1)一个节点有多个元素(元素个数与degree深度有关)2)当前节点的所有左边节点都是比它小的,右边节点都是比它大的3)整棵树都是已经排序的,包括节点内部的B+树:1)一......
  • 利用influxdb实现空间索引
    问题描述influxdb官方有一个库(实验版本),说的是可以支持空间索引(如查询某一个框内的轨迹点)。但是我经常测试,查询慢的不可思议。我在论坛曾经反馈过这个问题,目前没找到答案。解决方案1、在influxdb表中增加s2_cell_id字段,通过telegraf给该字段赋值。(见上截图)来验证下s2_c......
  • mysql用视图union多表
    订单表xfc_orderDROPTABLEIFEXISTS`xfc_order`;CREATETABLE`xfc_order`(`order_id`int(11)unsignedNOTNULLAUTO_INCREMENT,`order_code`varchar(32)NOTNULLCOMMENT'订单号',`pay_time`int(11)unsignedNOTNULLCOMMENT'付款时间',......
  • Mysql索引
    目录一、索引1、索引的概念二、索引的作用1、索引的作用2、索引的副作用三、创建索引的原则依据1、索引创建的原则2、MySQL的优化哪些字段/场景适合创建索引,哪些不适合?①小字段②唯一性强的字段③更新不频繁,但查询率很高的字段④表记录超过300+行⑤主键,外键,唯一......
  • 良心干货,常见的MySQL索引类型枚举!!!
    在MySQL中,索引是一种用于快速查询和检索数据的数据结构。它们类似于书籍的目录,可以帮助数据库系统更快地定位到特定的数据行,而不需要扫描整个数据表。索引可以显著提高查询性能,特别是在处理大量数据时。MySQL支持多种类型的索引,每种索引都有其特定的使用场景和优势。以下是......
  • 浅谈MySQL中的外键、索引和性能优化
    当我们讨论MySQL中的外键、索引和优化时,我们通常指的是为了提高数据库查询效率、数据完整性和整体性能而采取的一系列措施。1.外键(ForeignKeys)定义:外键是一个字段,它在一个表中引用另一个表的主键。外键用于确保数据引用完整性和在两个表之间建立关系。举例:假设......
  • 【测试开发学习历程】MySQL增删改操作 + 备份与还原 + 索引、视图、存储过程
    前言:SQL内容的连载,到这里就是最后一期啦!如果有小伙伴要其他内容的话,我会追加内容的。(前提是我有学过,或者能学会)接下来,我们就要开始python内容的学习了~~ 目录1 MySQL增删改操作1.1数据添加操作1.1.1插入完整的行1.1.2插入多行1.2数据更新操作1.3数据删除操......
  • 定时备份docker日志(shell方式,可能存在丢部分日志)
    创建sh文件 vi~/backup_docker_log.sh #!bin/shif[!-d"/logs"];thenmkdir"/logs"ficd/logs/forfilein/var/lib/docker/containers/*doiftest-d$filethenecho$file是目录forlogfilein$file/*.log......