SQL语句之 知识补充
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语句之 知识补充的更多相关文章
- [20190329]探究sql语句相关mutexes补充2.txt
[20190329]探究sql语句相关mutexes补充2.txt --//昨天测试sql语句相关mutexes,看看如果出现多个子光标的情况. 1.环境:SCOTT@book> @ ver1P ...
- SQL语句基础知识
1.关于SQL语句中exists与not exists的问题 course表如下:课程代号 课程名称 K01 奥运会主题曲 K02 喜爱的专辑 K03 VB技术大全 K04 经典歌曲 K05 个人单曲 ...
- 工作中常用的sql语句以及知识整理
一.常用的sql语句 1.建表语句 create table tabname(colname1 type1 [not null][primary key], colname2 type2,...) 根 ...
- Django中执行原生SQL语句【新编辑】
参考我的个人博客 这部分迁移到了个人博客中:Django中执行原生SQL语句 这里需要补充一下,还有一个extra方法: ret = models.Student.objects.all().extr ...
- MySQL之唯一索引、外键的变种、SQL语句数据行操作补充
0.唯一索引 unique对num进行唯一限制,表示num是独一无二的,uql是唯一索引名称 上面为联合索引:num和xx不能完全一样 1.外键的变种 a. 用户表和部门表 用户: 1 alex 1 ...
- 面试、笔试中常用的SQL语句(数据库知识必杀)一共50个!!!
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 ...
- 跟踪oracle中sql语句运行过程及相关知识拓展
select * from v$sqlarea; select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00'; 这种方 ...
- 常见SQL语句和SQL基础知识
引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name k ...
- 数据库基础知识详解四:存储过程、视图、游标、SQL语句优化以及索引
写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正. 11.存储过程 存储过程是事先经过编译并存储在数 ...
随机推荐
- 浅谈欧几里得算法求最大公约数(GCD)的原理及简单应用
一.欧几里得算法及其证明 1.定义: 欧几里得算法又称辗转相除法,用于求两数的最大公约数,计算公式为GCD(a,b)=GCD(b,a%b): 2.证明: 设x为两整数a,b(a>=b)的最大公约 ...
- Anaconda+django写出第一个web app(四)
前面对Models有了一些了解,今天开始进一步了解Views,了解Views如何和Models交互以及了解模板(templates). 打开main文件夹下的views.py,重新编写homepage ...
- Linux下inittab文件详解
/etc/inittab文件详解 Linux系统的启动过程为:加电自检-->根据BIOS中的设置从指定的设备启动-->找到设备MBR中的bootloader引导启动系统-->启动ke ...
- 那些代表性的HTTP状态码,你还只知道404吗?快来看看吧【转】
前言 在网络上发送请求后,经常会根据请求的状态码去判断请求的成功失败与否,常见的状态码有200,404,500. 不过你以为HTTP请求的状态码就只有这么几个么?其实是远远比这个多的. 今天这篇文章我 ...
- pymongo的几个操作
# -*- coding: utf-8 -*- # @Time : 2018/9/11 17:16 # @Author : cxa # @File : mongotest.py # @Software ...
- git summary
Git 使用经验 缘起 一直想写一篇博文,记录我在使用git时遇到的问题以及解决办法.由于项目忙,偶尔的记录不连续,不成系统.今天有时间记录下来,方便自己以后查看. git 简介及其优势 简单来说,g ...
- Python之 Lambda表达式
标签(空格分隔): Python进阶 Lambda是一种匿名函数,当我们需要重复调用某一函数,又不想写那么多代码时可以使用lambda表达式来代替. lambda的通用格式: lambda argum ...
- ifdef等宏的妙用
条件编译 一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是"条件编译". 条件编译命令最常见 ...
- linux cpu、内存、硬盘空间查询
[CPU] 算式: CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 #查看CPU型号 cat /proc/cpu ...
- ipad webapp禁止长按选择
1.禁止长按屏幕弹出对话框并选中文字 /*禁止长按选择文字事件*/ * { -webkit-touch-callout: none; -webkit-user-select: none; -khtml ...