存储过程

MySQL数据库sql语句

一世执手 提交于 2020-02-26 03:32:48
零、用户管理:   1、新建用户:     >CREATE USER name IDENTIFIED BY 'ssapdrow';   2、更改密码:     >SET PASSWORD FOR name=PASSWORD('fdddfd');   3、权限管理     >SHOW GRANTS FOR name; //查看name用户权限     >GRANT SELECT ON db_name.* TO name;    //给name用户db_name数据库的所有权限     >REVOKE SELECT ON db_name.* TO name;    //GRANT的反操作,去除权限; 一、数据库操作:    1、查看数据库:     >SHOW DATABASES;   2、创建数据库:     >CREATE DATABASE db_name;  //db_name为数据库名   3、使用数据库:     >USE db_name;   4、删除数据库:     >DROP DATABASE db_name; 二、创建表:   1、创建表:     >CREATE TABLE table_name(     >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——唯一性,可做主键。     

架构师必备之常见面试题整理——数据库灵魂十问!

假如想象 提交于 2020-02-26 02:13:31
常见的数据库面试题有哪些 (一)什么是存储过程?有哪些优缺点? 存储过程是一些预编译的SQL语句。 更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。 存储过程是一个预编译的代码块,执行效率比较高 一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率 可以一定程度上确保数据安全 (二)索引是什么?有什么作用以及优缺点? 索引是对数据库表中一或多个列的值进行排序的结构,是帮助MySQL高效获取数据的数据结构 你也可以这样理解:索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。 MySQL 数据库几个基本的索引类型:普通索引、唯一索引、主键索引、全文索引 索引加快数据库的检索速度 索引降低了插入、删除、修改等维护任务的速度 唯一索引可以确保每一行数据的唯一性 通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能 索引需要占物理和数据空间 (三)什么是事务? 事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列

Mysql存储过程

℡╲_俬逩灬. 提交于 2020-02-26 01:06:59
一、什么是mysql存储过程? 是在数据库系统中,一组为了完成特定功能SQL语句集,经编译后存储在数据库中,用户通过制定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程是经过编译的SQL语句集。编译后节省很多性能。 二、为什么使用存储过程? 1、存储过程只在创造时进行编译,以后每次执行存储过程都不需要再重新编译,而一般SQL语句每执行一次就编译一次,所以存储过程可以提高数据库执行速度 2、当对数据库进行复杂操作时(如对多个表进行UPDATE,INSERT,QUERY,DELETE时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用,这些操作如果用程序来完成,就变成一条条的SQL语句,可能要多次链接数据库,而换成存储过程,只需要链接一次数据库就可以了 3、存储过程可以重复使用,可以减少数据库开发人员的工作量 4、安全性高,可设定只有某些用户才具有对指定存储过程的使用权 三、存储过程的缺点 1、可移植性差 2、对于简单的SQL语句,存储过程没什么优势 3、存储过程中不一定会减少网络传输 4、如果一个用户使用数据库,那么存储过程对安全也没什么影响 5、团队开发时需要统一标准,否则后期维护起来麻烦 6、在大并发访问量的情况下,不宜写过多涉及运算的存储过程 7、业务逻辑复杂时,特别是涉及到对很大的表进行操作的时候,不如在前端先简化业务逻辑 四

python学习之web中的html

左心房为你撑大大i 提交于 2020-02-26 01:02:46
Web概述 web起源 web特点 1.易导航和图形化界面 2.与平台无关 3.分布式结构 4.动态性 5.交互性 html 网页结构 HTML(Hyper Text Mark-up Language )即是 超文本标记语言, 通过使用标记标签来描述页面文档 结构和表现形式的一种语言,再由浏览器进行解析, 然后把结果展示在网页上。 •超文本指的是超链接 •标记指的是标签 1).HTML文件用编辑器打开显示的 是文本,可以用文 本的方式编辑. 2). HTML文件用浏览器打开,浏 览器会按照标签描述内容将文件渲 染成网页,显示的网页可以从一个 网页 链接跳转到另外一个网页。 html文档规范与注释 xhtml制定了文档的编写规范,html5可部分遵守,也可全部遵守,看开发要求。 1、所有的标签必须小写 2、所有的属性必须用双引号括起来 3、所有标签必须闭合 4、img必须要加alt属性(对图片的描述) html文档代码中可以插入注释,注释是对代码的说明和解释,注释的内容不会显示 在页面上,html代码中插入注释 的方法是: <!-- 这是一段注释 --> html标签 第一个html标签 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>西部开源中心</title> </head> <body>

MySQL--存储过程练习题

ⅰ亾dé卋堺 提交于 2020-02-25 21:06:34
1 练习题: 2 一、创建存储过程实现传入用户名和密码,插入到admin表中 3 delimiter $ 4 create PROCEDURE test_pro(in username VARCHAR(20),in loginpwd VARCHAR(20)) 5 begin 6 insert into admin(admin.username,password) VALUES(username,loginpwd); 7 #end; @ 这种写法也是可以的 8 end $ 9 10 二、创建存储过程实现传入女神的编号,返回女神的名称和女神的电话 11 create PROCEDURE test_pro2(in id int,out name VARCHAR(20),out phone VARCHAR(20)) 12 begin 13 select b.name,b.phone into name,phone from beauty b where b.id=id; 14 end $ 15 16 三、创建存储过程实现传入两个女神的生日,返回大小, 17 现在我们做的效果是,如果比较两个生日之间相差的天数,如果是整数,表示的是大于,反之表示的小于 18 create PROCEDURE test_pro3(in birth1 datetime,in birth2 datetime,out

java存储过程调用(sqlsever数据库)

╄→гoц情女王★ 提交于 2020-02-25 18:58:05
存储过程: --call MyProc(?,?,?) alter proc MyProc (@id int, @customerid nchar(5) output, @employeeid int output )as begin select @customerid=customerid,@employeeid=employeeid from orders where orderid=@id end go declare @cu char(5), @em int exec MyProc 10248,@cu output,@em output print(cast(@em as char(5))+@cu) 以下是java调用存储过程: import java.sql.*; public class Study { private Connection con; public ResultSet re; private CallableStatement callsta; private String str; private String use="sa"; private String pwd="sa"; public Study() { try{ //连接数据库驱动 Class.forName("com.microsoft.jdbc.sqlserver

Mybatis 存储过程调用

家住魔仙堡 提交于 2020-02-25 12:10:07
1 存储过程 create or replace procedure proc_bus_tendstatus(v_tendid in Integer,cur_tendstatus out sys_refcursor) as v_zbbg varchar2(2);--生命变量 begin     --编写逻辑体内容 commit; --返回游标 open cur_tendstatus for select * from tp_buss_tendstatus where tendid = v_tendid; end proc_bus_tendstatus; 2 mapper.xml 文件配置 <select id="queryTenderStByTendid" statementType="CALLABLE" parameterType="Map"> call proc_bus_tendstatus( #{tendid,mode=IN,jdbcType=NUMERIC,javaType=Integer}, #{tenderSts,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=tenderStMap} ) </select> 3 Dao 层编码 public List<TenderStBean>

mybatis调用存储过程

做~自己de王妃 提交于 2020-02-25 12:08:51
1.mybatis调用oracle存储过程 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="xxxMapper"> <resultMap type="java.util.LinkedHashMap" id="cursorMap"> </resultMap> <select id="getXXX" parameterType="map" useCache="false" statementType="CALLABLE"> <![CDATA[ CALL 存储过程名称( --parameterType="map" 使用map封装参数,直接输入key名称就可以获取到 --mode=IN 输入参数 #{iCompanyid, jdbcType=VARCHAR, mode=IN}, #{iProjid, jdbcType=VARCHAR, mode=IN}, #{iCurPage, jdbcType=DOUBLE, mode=IN}, --当前页 #{iPageSize, jdbcType=DOUBLE,

SQLServer存储过程返回值总结

走远了吗. 提交于 2020-02-25 11:41:18
1. 存储过程没有返回值的情况(即存储过程语句中没有 return 之类的语句) 用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种情况 (1)假如通过查询分析器执行该存储过程,在显示栏中假如有影响的行数,则影响几行count就是几 (2)假如通过查询分析器执行该存储过程,在显示栏中假如显示 '命令已成功完成。' 则count = -1;在显示栏中假如有查询结果,则count = -1 总结:A.ExecuteNonQuery()该方法只返回影响的行数,假如没有影响行数,则该方法的返回值只能是-1,不会为0。 B.不论ExecuteNonQuery()方法是按照CommandType.StoredProcedure或者CommandType.Text执行,其效果和A一样。 --------------------------------------------------------------------------------------------------------------------------------------------------- 2. 获得存储过程的返回值--通过查询分析器获得 (1)不带任何参数的存储过程(存储过程语句中含有 return ) ---创建存储过程 CREATE PROCEDURE

sql server 2000存储过程的返回值

走远了吗. 提交于 2020-02-25 11:40:20
1. 存储过程没有返回值的情况(即存储过程语句中没有return之类的语句) 用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种情况 (1)如果通过查询分析器执行该存储过程,在显示栏中如果有影响的行数,则影响几行count就是几 (2)如果通过查询分析器执行该存储过程,在显示栏中如果显示'命令已成功完成。'则count = -1;在显示栏中如果有查询结果,则count = -1 总结:A.ExecuteNonQuery()该方法只返回影响的行数,如果没有影响行数,则该方法的返回值只能是-1,不会为0。 B.不论ExecuteNonQuery()方法是按照CommandType.StoredProcedure或者CommandType.Text执行,其效果和A一样。 --------------------------------------------------------------------------------------------------------------------------------------------------- 2. 获取存储过程的返回值--通过查询分析器获得 (1)不带任何参数的存储过程(存储过程语句中含有return) ---创建存储过程 CREATE PROCEDURE