MySQL学习(3) 视图,游标,语句块儿
1.MySQL创建视图的简单语句为:CREATE VIEW view_name AS SELECT * from TABLE_NAME;
不能对触发器创建视图(VIEW)。但是在5.1.4中是这样描述的,A view can be created from many kinds of SELECT statements. It can refer to base tables or other views. It can use joins, UNION, and subqueries。大致意思是视图可以由大多数SELECT语句组成,可以是参考基础表或其他的视图。能使用连接,合并和子查询。
2.游标(CURSOR),游标在存储过程中的使用。
游标是一种在数据库服务器端操作结果集的方式,如果没有游标我们要对查询的结果集进行处理就要使用高级语言编程实现,这样增加了不必要的网络传输。MySQL在5.0.3支持了游标。
学习的代码如下:
DELIMITER /
/**
*1.修改表列
*1.1增加表列,1.2
*/
ALTER TABLE t ADD COLUMN ii INT;
ALTER TABLE t
/**
*2.MD5函数,现在的加密工作都交给数据库了,不用在应用中加密了。
**/
SELECT MD5('LEST');
/**
*3.视图VIEW,这样我们只要查询视图就可以看到我们要查看的数据,当然前提是我们的SELECT 语句包括了他们。
*/
CREATE OR REPLACE VIEW v_t AS SELECT i from t;
SELECT * from v_t;
DESC v_t;
CREATE PROCEDURE p_iu()
BEGIN
INSERT INTO userinfo VALUES('bill',30);
UPDATE userinfo SET age=20 WHERE username='admin1234';
COMMIT;
EXCEPTION
ROLLBACK;
END;
/**4.将各个操作限制在一起,成功的条件是整个操作顺利完成*/
BEGIN
INSERT INTO t VALUES(12,12);
INSERT INTO tx VALUES(11);
END;
/
/**
*5.游标CURSOR,存储过程和函数支持简单的游标,使用游标是数据库服务器可能会将结果表复制一份,也可能不会,只能在存储过程和函数中使用。
*1.简单的游标应用,done是又游标的实现者操作,对其值进行修改
**/
DROP TABLE IF EXISTS t;//
CREATE TABLE t(i_a INT);//
INSERT INTO t VALUES(2);//
CREATE PROCEDURE p_cur()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a INT;
DECLARE cur1 CURSOR FOR SELECT * from t;
OPEN cur1;
REPEAT
FETCH cur1 INTO a;
UNTIL done END REPEAT;
CLOSE cur1;
END;
//
DELIMITER 根据需要改变。
相关文档:
复制记录,采用自查询方式
sql
INSERT INTO `table` ('id','aa','bb','cc') SELECT 'id','aa','bb','cc' from `table` (WHERE .....)
Tips:
/**
* 复制新纪录的时候,可能要更新id或者是部分数据(假设id自增加的情况)
*
* text_aa 为固定值 ,可在脚本调用中赋变量值 如($aa)
* 注意'text_aa' 与 `cc` 的区别 ......
MySQL
是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由
于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
1、phpMyAdmin(http://www.phpmyadmin.ne ......
1、新建数据源文件mysql-ds.xml,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/mydatabase?useUnico ......
安装mysql
gem install mysql
使用mysql,如,rake db:migrate
会报错:
E:\study\ruby\rails_space>rake db:migrate
(in E:/study/ruby/rails_space)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
193: ......