`
zhouxianglh
  • 浏览: 267613 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mysql 5.1 学习笔记

阅读更多
drop database if exists mysqlstudy; 
create database if not exists mysqlStudy;

use mysqlstudy;

create table t_user(
 userid int AUTO_INCREMENT,
 userName varchar(20),
 primary key (userid)
);
create table t_role(
 roleid int auto_increment,
 roleName varchar(20) not null,
 primary key (roleid),
 index ind_first (roleName(4))
);
create table t_user_role(
 infoid int auto_increment,
 userid int not null references t_user(userid),
 roleid int not null references t_role(roleid),
 primary key(infoid),
 foreign key (roleid) references t_role(roleid),
 foreign key (userid) references t_user(userid)
);
/*创建索引*/
create index ind_second on t_user(userName);
create index ind_third on t_role(roleName);

insert into t_user values (null,'你好'),(null,'小胖子'),(null,'大胖子'),(null,'胖子'),(null,null);
insert into t_role values (null,'good'),(null,'isw2'),(null,'mail'),(null,'haha');
insert into t_user_role values (null,1,2),(null,2,2),(null,4,2),(null,1,4);

/* 第一个查询将一无所获,第二个查询不会包含null项;null 为不确定因素,使查询无法进行 */
select * from t_user where username not in ('你好','小胖子',null);
select * from t_user where username in ('你好','小胖子',null);
select * from t_user where username is null;
select userid,if(username is null,'暂无',username) as username from t_user;
select userid,(case username when username then username else '暂无' end) as username from t_user;

select * from t_role;
select * from t_user_role;

/* 存储过程 */
delimiter $$
/* delimiter $$ 用于定义结束符代替";" */
drop procedure if exists pro_first $$
create procedure pro_first()
BEGIN
 select 'good'; 
END$$
DELIMITER ;

call pro_first;

delimiter //
drop procedure if exists pro_second //
create procedure pro_second(var_name char(40))
LABEL_PROC:
begin
    declare v_sql varchar(200);
    set v_sql = 'select * from t_user where userName like ? limit 0, 3 ';
    set @sql = v_sql;
    set @var_name = var_name;
    prepare sl from @sql;/* 定义 预定义语句  */
    execute sl using @var_name;/*执行语句*/
    deallocate prepare sl;/*解除分配预定义语句*/
end LABEL_PROC //
delimiter ;

call pro_second('%胖%');

/* 自定义函数 */
delimiter $$
drop function if exists fun_first $$
create function fun_first() returns varchar(20)
begin
 return 'good';
end $$
delimiter ;

select fun_first();

/*触发器*/
delimiter $$
drop trigger if exists tri_first $$
create trigger tri_first after insert on t_user for each row
begin
insert into t_user_role values(null,NEW.userid,4);
end $$
delimiter ;
insert into t_user values(null,'谷歌');

/* 视图 */
drop view if exists vie_first;
create view vie_first as
select tur.infoid as number ,tu.userName as userName,tr.roleName as roleName 
from t_user_role as tur left join t_user as tu on tur.userid = tu.userid
			left join t_role as tr on tur.roleid = tr.roleid;

select * from vie_first;

explain select * from vie_first;


delimiter $$
drop procedure if exists pro_second $$
create procedure pro_second()
begin
declare uname varchar(20) default 'root';
select username into uname from t_user where userid = 4;
select uname;  
end $$
delimiter ;
call pro_second;


explain t_user;
/* Extra :Select tables optimized away  这里仅仅查询索引,没有查询数据 */
explain select max(userid),min(userid) from t_user;
/* extended关键字时,explain产生附加信息,通过show warnings 浏览.显示重写并且执行优化规则后select语句是什么样子 */
explain extended select * from t_user where 1=1 and 2 = 2;
show warnings;
/* 显示优化结果select `mysqlstudy`.`t_user`.`userid` AS `userid`,`mysqlstudy`.`t_user`.`userName` AS `userName` from `mysqlstudy`.`t_user` where 1 */
explain select userName from t_user;
explain select * from t_user where userid =4;
/* 强制使用指定索引查询 use index (ind_second) */
/* like'%胖' 无法使用索引 */
explain select * from t_user where username like '%胖';
explain select * from t_user use index (ind_second) where username like '胖%'; 


/* 用于分析表达式 */
select benchmark(1000,1+1);
/* 修复索引 */
analyze table t_user;
show index from t_user;


/* 查询 指定 自定义函数,视图,存储过程 */
show create function fun_first;
show create view vie_first;
show create procedure pro_first;
/*显示表的相关信息*/
show create table t_user;
/* 显示索引详情 */
show index from t_user;
show tables;
/*显示表结构*/
describe t_user;

/*系统表相关查询*/
use information_schema;
/*查询索引相关*/
select * from STATISTICS where TABLE_SCHEMA = 'mysqlstudy';
/*查询数据表相关*/
select * from tables where table_schema = 'mysqlstudy';
/*查询相关触发器*/
select * from triggers where trigger_schema = 'mysqlstudy';
/* 查询用户权限 */
select * from USER_PRIVILEGES;
/*查询表权限*/
select * from TABLE_PRIVILEGES where table_schema = 'mysqlstudy';
/*查询列权限*/
select * from COLUMN_PRIVILEGES where table_schema = 'mysqlstudy';
/*查询表约束*/
select * from TABLE_CONSTRAINTS where table_schema = 'mysqlstudy';
/*查询键约束*/
select * from KEY_COLUMN_USAGE where TABLE_SCHEMA = 'mysqlstudy' ;
/* 查询自定义函数,存储过程 */
select * from routines;
/*查询视图*/
select * from views;
/* 查询触发器 */
select * from triggers;


show status;
show variables;
show processlist;
 
分享到:
评论

相关推荐

    MySQL5.1学习笔记.pdf

    这份《MySQL5.1学习笔记》涵盖了基础知识到高级功能的操作示例,是学习MySQL 5.1的宝贵资料。 从提供的内容来看,学习笔记涉及了以下知识点: 1. 基本数据库操作 - 显示当前版本和日期:`SELECT VERSION(), ...

    MySQL5学习笔记.pdf

    MySQL 5.1是该系列的一个重要版本,引入了对事务处理的支持和分区表功能,这些特性显著提升了其在企业级应用中的性能和可靠性。 MySQL的基础知识包括以下几个方面: 1. **MySQL安装**:MySQL可以从官方网站...

    MySQL DBA运维笔记 超详细

    MySQL DBA运维笔记详细介绍了数据库相关的基础知识以及MySQL数据库的管理和操作技巧,以下是详细的知识点梳理: 1. 数据库的种类: 1.1 关系型数据库介绍:关系型数据库是以行和列的形式存储数据,支持复杂的查询...

    MySQLDBA运维笔记.pdf

    1.7 关于 mysql 管理员设置..................................................................................................22资源由 www.eimhe.com 美河学习在线收集分享 1.7.1 为管理员 root 用户设置密码...

    基于学生信息管理系统的数据库系统课程设计的MySQL的学习笔记

    ### 基于学生信息管理系统的数据库系统课程设计的MySQL学习笔记 #### 一、系统概述 本系统是一个专门用于管理学生信息的学生信息管理系统。它主要用于收集和维护学生的个人信息,并支持对学生信息的各种操作,比如...

    MySQL学习笔记

    ### MySQL学习笔记知识点详解 #### 一、MySQL安装与配置 **1.1 安装失败解决方案** 在MySQL安装过程中可能会遇到启动失败的情况,解决这一问题通常需要检查以下几个方面: - **确认系统环境变量是否正确配置**:...

    MySQL进阶学习-笔记整理

    适合对mysql有一定基础的同学,涉及mysql调优、集群等操作,包含详细的操作步骤和示例代码。 1、性能优化 1.1、Mysql索引底层数据结构与算法 ...5.1、Mysql8.0.17新特性 6、安装集群 6.1、单机版本 6.2、主从复制

    mysql学习及复习笔记

    总的来说,MySQL学习涉及许多基础概念和操作,包括数据库的创建、删除、选择,表的建立、修改和删除,以及数据的插入、查询、更新和删除。熟悉这些基本操作是深入理解和使用MySQL的关键。同时,了解SQL标准和不同...

    mysql 学习笔记

    ### MySQL学习笔记:常见错误与理解 在MySQL的学习与实践中,遇到各种错误代码是在所难免的,理解并解决这些错误是提升技能的关键。本文将基于提供的文件内容,深入解析MySQL中的一些常见错误及其背后的原理,帮助...

    十一、MySQL视图学习笔记(详解)

    mysql5.1版本出现的新特性,是通过表动态生成的数据 比如:舞蹈班和普通班级的对比 视图和表的区别: 名称 创建语法的关键字 使用 占用物理空间 视图 create view 增删改查,只是一般不能增删改 不占用,仅仅...

    MySql初学者资料合集

    15. **Mysql5学习笔记.chm**:这本书可能提供了作者在学习MySQL5时的心得体会和实用技巧,对于初学者来说,这样的实践经验分享非常有价值。 通过阅读这些资料,初学者将能够逐步建立起对MySQL的全面认识,并具备...

    MySql经典笔记.pdf

    笔记中提到了5.0.27的安装版和6.0.0的非安装版,安装后的文件布局在Windows上默认位于C:\Program Files\MySQL\MySQLServer 5.1目录下,包含bin、data、doc等子目录,分别存储客户端程序、数据文件、文档和脚本等。...

    mysql笔记.doc

    通常选择稳定版,如MySQL 5.1或5.5。安装后,需要配置环境变量,以便在命令行中顺利连接到MySQL服务器。连接时,需要指定服务器地址(默认为localhost)、端口(通常是3306)、用户名和密码。 连接成功后,客户端与...

    MySql官方手册学习笔记1 MySql简单上手

    ### MySQL官方手册学习笔记1:MySQL简单上手 在学习MySQL的过程中,对于初学者来说,掌握如何连接数据库、执行简单的SQL语句是非常重要的基础技能。本文档基于对MySQL 5.1的学习经验进行总结,旨在帮助新手快速入门...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    丛书名: 学习笔记 出版社:清华大学出版社 ISBN:9787302282082 上架时间:2012-5-9 出版日期:2012 年5月 开本:16开 页码:564 版次:1-1 所属分类:计算机 > 软件与程序设计 > JAVA(J#) > Java 编辑推荐   ...

    燕十八mysql笔记.doc

    在本篇笔记中,我们将探讨MySQL的基础知识,包括如何使用MySQL进行数据的增删改查、数据库和表的管理和连接,以及一些基础的SQL语句。 1. 数据库的概念: 数据库就像现实生活中的账本,用于存储和组织信息。在MySQL...

    mysql经典笔记

    作者选择了5.0.27安装版,并且提到Windows上的默认安装路径是`C:\Program Files\MySQL\MySQL Server 5.1`。安装后,会有一个包含多个子目录的结构,如`bin`存放客户端程序和服务器,`data`存储日志和数据库,`Docs`...

    PHP PDO 学习笔记

    ### PHP PDO 学习笔记详解 #### 一、PDO简介 PDO(PHP Data Objects)是PHP 5中引入的一个数据库访问扩展,在PHP 6中它将成为连接数据库的标准方式,并逐步取代旧有的数据库连接方法。PDO的主要目标是为PHP提供一...

Global site tag (gtag.js) - Google Analytics