SQL语句之 知识补充

一.存储过程

运用SQL语句,写出一个像函数的模块,这就是存储过程。

需求: 编写存储过程,查询所有员工

-- 创建存储过程(必须要指定结束符号)

-- 定义结束符号

DELIMITER $

CREATE PROCEDURE pro_test()

BEGIN

SELECT * FROM student;

END $

CALL pro_test     -- 调用存储过程

创建存储语句:

delimiter 结束符号

create procedure 存储过程名称( 参数列表 out value varchar(20))//利用系统变量输出数据

begin    -- 开始

sql语句1

sql语句2

end 结束符号

调用存储过程语法:

call  存储过程名称(参数,@value);

Select @value;

参数类型:

IN : 输入参数,把参数带入存储过程

OUT: 输出参数,把结果随着参数带出到外面

INOUT:  输入输出。 输入+输出

二.触发器

触发器

在数据库服务器中执行了某些操作之后,希望触发一些事件、动作。就可以使用触发器

触发器案例

需求 : 当往employee表插入一条数据时,把该插入数据的动作记录到另一张表 logs

解决办法:编写一个触发器,监听employee表的数据插入。

-- *********四、 触发器***********

-- 创建日志表

CREATE TABLE tri_logs(

content VARCHAR(100)

)

-- 创建添加触发器

触发器的名字     操作    创建在哪个表

CREATE TRIGGER tri_addEmp AFTER INSERT ON employee FOR EACH ROW -- 往employee表插入一条记录时

INSERT INTO tri_logs(content) VALUES('用户往employee表插入记录');

触发后的操作

-- 创建修改触发器

CREATE TRIGGER tri_updEmp AFTER UPDATE ON employee FOR EACH ROW

INSERT INTO tri_logs(content) VALUES('用户修改了employee表记录');

-- 创建删除触发器

CREATE TRIGGER tri_delEmp AFTER DELETE ON employee FOR EACH ROW

INSERT INTO tri_logs(content) VALUES('用户删除了employee表记录');

-- 往员工表插入数据

INSERT INTO employee(ename, deptId) VALUES('eric',4);

-- 修改

UPDATE employee SET ename='jacky' WHERE eid=7;

-- 删除

DELETE FROM employee WHERE eid=7;

-- 查询

SELECT * FROM employee;

SELECT * FROM tri_logs;

MySQL数据库备份和还原

备份语句: mysqldump -u root -p day17 > c:/bak.sql 执行次命令不需要登录

还原语句: mysql -u root -p day17 < d:/back.sql

MySQL数据库权限问题

-- ********** 五、 MySQL数据库权限问题 ****

-- 安装mysql的时候,使用默认用户root,root是超级管理员,拥有对数据库的所有权限。(为了学习)

-- 实际应用中,会有数据库角色配置。例如张三只能查看数据,李四只能创建表,不能删除表。

-- 目标: 根据不同角色给不同用户分配数据库操作权限

-- 修改用户的密码

-- mysql数据库是存储mysql数据库软件用户信息

USE mysql;

SHOW TABLES;

-- 查询mysql.user表

SELECT * FROM USER;

-- 密码加密函数

SELECT PASSWORD('root'); -- *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B

-- 修改root密码

UPDATE USER SET PASSWORD=PASSWORD('123456') WHERE USER='root';

-- 给用户分配权限

GRANT SELECT ON day16.employee TO 'eric'@'localhost' IDENTIFIED BY '123456';

GRANT SELECT ON day16.dept TO 'eric'@'localhost' IDENTIFIED BY '123456';

SQL语句之 知识补充的更多相关文章

  1. [20190329]探究sql语句相关mutexes补充2.txt

    [20190329]探究sql语句相关mutexes补充2.txt --//昨天测试sql语句相关mutexes,看看如果出现多个子光标的情况. 1.环境:SCOTT@book> @ ver1P ...

  2. SQL语句基础知识

    1.关于SQL语句中exists与not exists的问题 course表如下:课程代号 课程名称 K01 奥运会主题曲 K02 喜爱的专辑 K03 VB技术大全 K04 经典歌曲 K05 个人单曲 ...

  3. 工作中常用的sql语句以及知识整理

    一.常用的sql语句 1.建表语句 create table tabname(colname1 type1 [not null][primary key], colname2 type2,...) 根 ...

  4. Django中执行原生SQL语句【新编辑】

    参考我的个人博客 这部分迁移到了个人博客中:Django中执行原生SQL语句 这里需要补充一下,还有一个extra方法: ret = models.Student.objects.all().extr ...

  5. MySQL之唯一索引、外键的变种、SQL语句数据行操作补充

    0.唯一索引 unique对num进行唯一限制,表示num是独一无二的,uql是唯一索引名称 上面为联合索引:num和xx不能完全一样  1.外键的变种 a. 用户表和部门表 用户: 1 alex 1 ...

  6. 面试、笔试中常用的SQL语句(数据库知识必杀)一共50个!!!

    Student(S#,Sname,Sage,Ssex) 学生表  Course(C#,Cname,T#) 课程表  SC(S#,C#,score) 成绩表  Teacher(T#,Tname) 教师表 ...

  7. 跟踪oracle中sql语句运行过程及相关知识拓展

    select * from v$sqlarea; select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00'; 这种方 ...

  8. 常见SQL语句和SQL基础知识

    引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name   k ...

  9. 数据库基础知识详解四:存储过程、视图、游标、SQL语句优化以及索引

    写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正. 11.存储过程 ​ 存储过程是事先经过编译并存储在数 ...

随机推荐

  1. 20155223 2016-2017-2 《Java程序设计》第7周学习总结

    20155223 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 Lambdo表达式下,任何参数的类型必须标明清楚:如果有目标类型的话,在编译程序可 ...

  2. Java内存模型简析

    1.多线程基础 线程通信,是指线程之间以何种机制来交换信息.其中通信的机制有两种:内存共享和消息传递.内存共享是指线程之间通过写-读内存中的公共状态隐式进行通讯(Java):消息传递在线程之间没有公共 ...

  3. HDU 4825 Xor Sum (裸字典树+二进制异或)

    题目链接 Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将 ...

  4. 【译】第八篇 Integration Services:高级工作流管理

    本篇文章是Integration Services系列的第八篇,详细内容请参考原文. 简介在前面两篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcu ...

  5. 2016.07.15——istringstream测试

    istringstream测试 1.istringstream strcin(str),字符串(str)可以包括多个单词,单词之间使用空格分开 #include "stdafx.h" ...

  6. excel导入时候日期格式转成date

    最近在做导入的时候发现,excel中设置数值格式是不能有日期的那些符号出现的,/ - : 之类的,否则就会变成数字到了java后台,设置成日期,比如 yyyy-mm-dd 到了后台也是数字,即距离19 ...

  7. 关于Linux内核版本

    Linux内核可分为实验版本和产品化版本.每一个版本号由三位数字“x.y.z”组成,第二位数字说明版本类型:偶数表示产品化版本,奇数表示实验版本.产品化版本只修改错误,而实验版本最初是产品化版本的拷贝 ...

  8. HDU 6061 RXD and functions

    题目链接:HDU-6061 题意:给定f(x),求f(x-A)各项系数. 思路:推导公式有如下结论: 然后用NTT解决即可. 代码: #include <set> #include < ...

  9. linux limits研究

    ---------------------------------------------------------------------------------------------------- ...

  10. 基于gRpc的远程服务框架

    作为一个新搭建的软件团队,底层技术尤为重要.为了以后更好的面向不同的项目需求,满足不断变化的需求,决定着手搭建一套RPC系统.为了更好的兼容以后部门其他语言的使用,选择了开源框架gRpc. gRpc ...