mysql学习

来源:互联网 发布:数据库系统实现英文版 编辑:程序博客网 时间:2024/06/18 13:21

    MySQL 是一个关系型数据库,瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条"授权政策"),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP。

   SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。通俗理解就是:dql主要是 select xx from ..语句;dml是执行增(insert)、删(delete)、改(update)的操作;ddl是用来创建库的对象的,是一个不可逆的过程,如dreate table..;最后的dcl是用来授予或回收访问数据库的权限的。

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。而存储过程的基本格式为:

create procedure 名(参数)
begin

end

其中的begin与end是比须同时存在的,而中间的存储过程体是要以‘;’作为结束的。在数据库中有很多都是成对出现的 if...then...end if;case...end case;while..do..end while;repeat...until...end repeat;loop...end loop一样的。

其中的参数分为输入(in)、输出(out)、输入输出(inout)三类,而in是可以省略不写的,参数的形式为 :参数类型(in、out还是inout) 参数名 数据类型,尤其需要注意的在存储过程中,数据库名不能当参数传入,这里是这样的:

create procedure paging(currPage int,pageRowSize int,dbName varchar(20))
begin

select * from dbname limit pageIndex,  pageRowSize;

end

这里将dbName一个表名当做一个参数传入了,运行时是不会报错的,但执行会出错,正确是:

create procedure paging(currPage int,pageRowSize int,dbName varchar(20))
begin
declare pageIndex int;
set pageIndex:=(currPage-1)*pageRowSize;
set @sqlStr=CONCAT("select * from ",dbName ," limit ",pageIndex,",",pageRowSize);
prepare strsql from @sqlStr;
execute  strsql;
end

采用拼接方式执行,其中的prepare 是预编译语句,而ececute是执行,这样就可以了。

存储过程的删除:dropprocedure  名字,就可以

存储过程的执行:call 名字。

查看存储过程: show procedure status where 的吧= 库名


接下来是索引:索引的出现主要是为了方便数据的快速查找。索引分为三类:主键,唯一以及普通索引;用的最多的是主键以及普通索引,主键索引一般是在创建表的时候就一并创建了,而普通索引的创建有:

create index 名字 on 表名(表的某一列名);

alter table 表名 add index 索引名(列名);这里的alter 是修改

删除索引(只有这一种):alter table 表名 drop index 索引名

查看索引:show index from 表名。


视图:是一虚拟的类似于投影一样,在我们一般的认为中,更改投影对投影源不会有影响,但这里是相互影响的,投影改,投音源跟着改变,反之亦然。视图的创建:

create view 名字 as sql语句;

修改:alter view 名字 as 新的sql语句;

这里的sql语句主要是 select

删除:drop view 名字


在java中调用存储过程:只需要将java的String sql = “call 名字”,然后同其他一样执行就ok。

 

原创粉丝点击