MySQL之存储过程、存储函数、备份还原、索引及视图

这篇具有很好参考价值的文章主要介绍了MySQL之存储过程、存储函数、备份还原、索引及视图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

-- 创建统计记录条数的存储函数count_sch()

DELIMITER //
CREATE FUNCTION count_sch()
  RETURNS INT
  BEGIN
    DECLARE count INT;
    SELECT COUNT(*) INTO count FROM sch;
    RETURN count;
  END //
DELIMITER ;

-- 创建存储过程avg_sai()

DELIMITER //
CREATE PROCEDURE avg_sai(IN deptno INT, IN job VARCHAR(50), OUT avg_salary INT)
  BEGIN
    SELECT AVG(salary) INTO avg_salary FROM emp WHERE d.no = deptno AND j.ob = job;
  END //
DELIMITER ;

一、备份与还原

/***************************样例表***************************/
CREATE DATABASE booksDB;
use booksDB;

CREATE TABLE books
(
  bk_id  INT NOT NULL PRIMARY KEY,
  bk_title VARCHAR(50) NOT NULL,
  copyright YEAR NOT NULL
);
INSERT INTO books
VALUES (11078, 'Learning MySQL', 2010),
(11033, 'Study Html', 2011),
(11035, 'How to use php', 2003),
(11072, 'Teach youself javascript', 2005),
(11028, 'Learing C++', 2005),
(11069, 'MySQL professional', 2009),
(11026, 'Guide to MySQL 5.5', 2008),
(11041, 'Inside VC++', 2011);

CREATE TABLE authors
(
  auth_id     INT NOT NULL PRIMARY KEY,
  auth_name  VARCHAR(20),
 auth_gender CHAR(1)
);
INSERT INTO authors  
VALUES (1001, 'WriterX' ,'f'),
(1002, 'WriterA' ,'f'),
(1003, 'WriterB' ,'m'),
(1004, 'WriterC' ,'f'),
(1011, 'WriterD' ,'f'),
(1012, 'WriterE' ,'m'),
(1013, 'WriterF' ,'m'),
(1014, 'WriterG' ,'f'),
(1015, 'WriterH' ,'f');

CREATE TABLE authorbook
(
  auth_id  INT NOT NULL,
  bk_id   INT NOT NULL,
  PRIMARY KEY (auth_id, bk_id),
  FOREIGN KEY (auth_id) REFERENCES authors (auth_id),
  FOREIGN KEY (bk_id) REFERENCES books (bk_id)
);

INSERT INTO authorbook
VALUES (1001, 11033), (1002, 11035), (1003, 11072), (1004, 11028),
(1011, 11078), (1012, 11026), (1012, 11041), (1014, 11069);
boo    
/***************************样例表***************************/

1、使用mysqldump命令备份数据库中的所有表

[root@node2 mysql_databases]#mysqldump -uroot -p123456 booksDB books > /backup/mysql_databases/booksDB_books.sql

2、备份booksDB数据库中的books表

[root@node2 mysql_databases]#mysqldump -uroot -p123456 booksDB books > /backup/mysql_databases/booksDB_books.sql

3、使用mysqldump备份booksDB和test数据库

[root@node2 mysql_databases]#mysqldump -uroot -p123456 --databases  booksDB test > /backup/mysql_databases/db-booksDB-test.sql

4、使用mysqldump备份服务器中的所有数据库

[root@node2 mysql_databases]#mysqldump -uroot -p123456 -A --routines > /backup/mysql_databases/all_databasesA.sql

5、使用mysql命令还原第二题导出的book表

[root@node2 mysql_databases]# mysql -uroot -p'123456' booksDB books < booksDB_books.sql 

6、进入数据库使用source命令还原第二题导出的book表

mysql> create database booksDB;
mysql> use booksDB;
mysql> source /backup/mysql_databases/booksDB_books.sql

二、索引

1、建立一个utf8编码的数据库test1

mysql> CREATE DATABASE test1 CHARACTER SET utf8 COLLATE utf8_general_ci;

2、建立商品表goods和栏目表category
    按如下表结构创建表:存储引擎engine myisam 字符集charset utf8
 

   mysql> desc goods;
    +------------+-------------+------+-----+---------+----------------+
    | Field      | Type        | Null | Key | Default | Extra          |
    +------------+-------------+------+-----+---------+----------------+
    | goods_id   | int(11)     | NO   | PRI | NULL    | auto_increment |
    | goods_name | varchar(20) | NO   |     |         |                |
    | cat_id     | int(11)     | NO   |     | 0       |                |
    | brand_id   | int(11)     | NO   |     | 0       |                |
    | goods_sn   | char(12)    | NO   |     |         |                |
    | shop_price | float(6,2)  | NO   |     | 0.00    |                |
    | goods_desc | text        | YES  |     | NULL    |                |
    +------------+-------------+------+-----+---------+----------------+
    7 rows in set (0.00 sec)
    mysql> desc category;
    +-----------+-------------+------+-----+---------+----------------+
    | Field     | Type        | Null | Key | Default | Extra          |
    +-----------+-------------+------+-----+---------+----------------+
    | cat_id    | int(11)     | NO   | PRI | NULL    | auto_increment |
    | cate_name | varchar(20) | NO   |     |         |                |
    | parent_id | int(11)     | NO   |     | 0       |                |
    +-----------+-------------+------+-----+---------+----------------+
    3 rows in set (0.00 sec)
mysql> USE test1;
Database changed
mysql> CREATE TABLE goods
    -> (
    ->   goods_id   INT(11)      NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ->   goods_name VARCHAR(20)  NOT NULL,
    ->   cat_id     INT(11)      NOT NULL DEFAULT 0,
    ->   brand_id   INT(11)      NOT NULL DEFAULT 0,
    ->   goods_sn   CHAR(12)     NOT NULL,
    ->   shop_price FLOAT(6,2)   NOT NULL DEFAULT 0.00,
    ->   goods_desc TEXT         DEFAULT NULL
    -> ) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8;

  parent_id INT(11)      NOT NULL DEFAULT 0
) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8;Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> CREATE TABLE category
    -> (
    ->   cat_id    INT(11)      NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ->   cate_name VARCHAR(20)  NOT NULL,
    ->   parent_id INT(11)      NOT NULL DEFAULT 0
    -> ) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8;
Query OK, 0 rows affected (0.00 sec)

3、删除 goods 表中的 goods_desc 和 goods_sn 字段,并增加 click_count 字段:

mysql> ALTER TABLE goods
    -> DROP COLUMN goods_desc,
    -> DROP COLUMN goods_sn,
    -> ADD COLUMN click_count INT AFTER brand_id;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

4、在 goods_name 列上加唯一性索引(用 alter table 方式):

mysql> ALTER TABLE goods
    -> ADD UNIQUE INDEX idx_goods_name (goods_name);

5、在 shop_price 列上加普通索引(用 create index 方式):

mysql>  CREATE INDEX idx_shop_price ON goods(shop_price);

6、在 click_count 上增加普通索引,然后再删除(分别使用 drop index 和 alter table 删除):

mysql> ALTER TABLE goods
    -> ADD INDEX idx_click_count (click_count);

mysql> ALTER TABLE goods
    -> DROP INDEX idx_click_count;

三、视图 学生表:Student (Sno, Sname, Ssex , Sage, Sdept) 学号,姓名,性别,年龄,所在系 Sno为主键 课程表:Course (Cno, Cname,) 课程号,课程名 Cno为主键 学生选课表:SC (Sno, Cno, Score) 学号,课程号,成绩 Sno,Cno为主键

1、创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

CREATE VIEW stu_info AS SELECT S.Sname, S.Ssex, C.Cname, SC.Score FROM Student S JOIN SC ON S.Sno = SC.Sno JOIN Course C ON C.Cno = SC.Cno;

2、删除视图 stu_info。文章来源地址https://www.toymoban.com/news/detail-564586.html

DROP VIEW stu_info;

到了这里,关于MySQL之存储过程、存储函数、备份还原、索引及视图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL(视图,存储函数,存储过程)

    作业1:  作业实现: 首先创建学生表,课程表,以及学生选课表。  1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。 2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。 3.为SC表建立按学号(

    2024年01月21日
    浏览(42)
  • 数据备份与还原,(mysqldump,source)索引(index),创建视图(view)

    一、备份与还原 1、使用mysqldump命令备份数据库中的所有表 2、备份booksDB数据库中的books表 3、使用mysqldump备份booksDB和test数据库 4、使用mysqldump备份服务器中的所有数据库 5、使用mysql命令还原第二题导出的book表 6、进入数据库使用source命令还原第二题导出的book表 索引 1、建立

    2024年02月15日
    浏览(37)
  • MySQL:存储过程与函数、视图

    一、学习目标 掌握如何创建存储过程 掌握如何创建存储函数 熟悉变量的使用方法 熟悉如何定义条件和处理程序 了解光标的使用方法 掌握流程控制的使用 掌握如何调用存储过程和函数 熟悉如何查看存储过程和函数 掌握修改存储过程和函数的方法 熟悉如何删除存储过程和函

    2024年02月05日
    浏览(48)
  • MySQL基础(五)视图、存储过程和存储函数、变量

    目录 常见的数据库对象  ​编辑  视图 创建视图 改变视图 优缺点 存储过程与存储函数  创建存储过程  创建存储函数 存储过程和存储函数的区别  存储过程和函数的查看、修改、删除  查看 修改 删除 存储过程的优缺点 优点 缺点 变量 系统变量 查看系统变量 修改变量

    2024年02月13日
    浏览(45)
  • MySQL函数、视图、存储过程及触发器

    MySQL在我们工作中都会用到,那么我们最常接触的就是增删改查,而对于增删改查来说,我们更多的是查询。但是面试中,面试官又不会问你什么查询是怎么写的,都是问一些索引啊,事务啊, 底层结构这些东西,所以我打算分四篇去逐一的过一遍MySQL的知识点。 以下为四篇

    2023年04月09日
    浏览(57)
  • MySQL小记——存储过程、触发器、函数、视图

    目录 存储过程 procedure 语法 参数 调用存储过程 call 删除存储过程 drop 带有IF逻辑的存储过程 if then elseif else 带有循环的存储过程 while do 变量 触发器 Trigger 语法 old和new 视图 View 函数 自定义函数 内置函数 存储过程是数据库中的一个对象,存储在服务端,用来封装多条SQL语句

    2024年02月08日
    浏览(53)
  • MySQL高级篇复盘笔记(一)【存储引擎、索引、SQL优化、视图、触发器、MySQL管理】

    ❤ 作者主页:欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于 Java后端开发 ,欢迎来交流学习哦!( ̄▽ ̄)~* 🍊 如果文章对您有帮助,记得 关注 、 点赞 、 收藏 、 评论 ⭐️⭐️⭐️ 📣 您的支持将是我创作的动力,让我们一起加油进步吧!!!🎉🎉 连接层

    2024年02月06日
    浏览(75)
  • SQL Server判断数据库、表、列、视图、存储过程、函数是否存在

    在写一些业务逻辑相对复杂点的存储过程的时候,经常会用到临时表或者数据表作为临时结果的保存。但每次在作表是否存在的判断时,往往想不起完整的SQL写法。因此,记录一些常用的数据库对象是否存在的判断方法,可以达到快速查找的目的。正是:好记性不如烂笔头。

    2024年02月02日
    浏览(121)
  • MySQL (备份恢复 索引 视图)练习

    一、备份与还原     /***************************样例表***************************/     CREATE DATABASE booksDB;     use booksDB;     CREATE TABLE books     (       bk_id  INT NOT NULL PRIMARY KEY,       bk_title VARCHAR(50) NOT NULL,       copyright YEAR NOT NULL     );     INSERT INTO books     VALUES (11078, \\\'L

    2024年02月15日
    浏览(43)
  • Mysql之视图,索引及数据的备份与恢复

    目录 一、视图 1.视图是什么 2.视图与数据表的区别 3.视图的优缺点 优点: 缺点: 4.视图的应用场景 5.语法运用 二、索引 1.什么是索引 2.为什么要使用索引 3.使用索引的优缺点 4.何时不使用索引 5.索引何时失效 6.索引分类 三、数据的备份与恢复 1.数据库工具内导入导出 2.m

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包