`

mySQL学习入门教程——5.常用的高级操作

 
阅读更多

五、mysql常用的高级操作

 

一、MySQL表复制
create table t2 like t1;               #复制表结构,t2可以学习到t1所有的表结构
insert into t2 select * from t1;    #复制表数据,但是这样还是会有缺陷,因为没有考虑到列的对应,因为t1与t2的表结构完全一致,所以此次操作才不会出错!
建议:
insert into t3(name) select name from t1; #指定复制的列

二、MySQL索引
1、直接创建索引
create index index_name on table_name(column_list);                #创建普通索引
create unique index index_name on table_name(colume_list);    #创建唯一索引,请在创建唯一索引之前确保该列没有重复值,不然,创建不成功!

2、直接删除索引
drop index index_name on table_name;

3、修改-创建索引
alter table table_name add index [index_name](colum_list);                #创建普通索引
alter table table_name add unique [index_name](column_list);            #创建唯一索引
alter table table_name add primary key [index_name](column_list);   #创建主键索引,如果不添加index_name,则使用column_list作为默认索引名

4、修改-删除索引
alter table table_name drop index index_name;            #删除普通/唯一索引
alter table table_name drop primary key;                      #删除主键索引

【推荐使用方式3、4】
1、查看索引:show index from t1 \G
2、alter table table_name modify id int not null;(没有查到用modify修改索引,貌似是用add做修改?)

三、MySQL视图
视图:通过一个条件,把一部分数据从一张表里面提取出来,形成一张中间表,这张表就是视图
注意:视图随着主表的改变而改变
1、创建视图
create view view_name as select *from table_naem where id > 4 and id <= 10;

3、查看创建了哪些视图
show tables; #视图就是一个中间表
3、查看视图中数据
select * from view_name; #与查看表数据相同

4、删除视图
drop view view_name;

四、MySQL内置函数补充
查看函数作用及简单示例:function_name
e.g.  lcase;

1、字符串函数
1)lcase(“string”)/ucase(“string”)           #转换成小写/大写,与lower(str)/upper(str)作用相同
2)length(“string”)                                   #返回字符串的长度
3)repeat(“string”,n)                                #将字符从重复n次
4)space(n)                                               #生成n个空格

2、数学函数
1)bin(decimal_number)                          #十进制转二进制
2)ceiling(n)                                             #作用与ceil相同,向下取整
3)sqrt(n)                                                  #开平方
4)max(col)/min(col)                               #取最大/最小值,聚合时使用
5)rand()                                                   #生成随机数
select * from table_name order by rand(); #使用rand函数作为排序基准

3、日期函数
1)datediff(expr1,expr2)                             #返回expr1和expr2相差的天数,如果expr1> expr2,则返回正值

 

 ****************************比较高级部分***********************************

五、MySQL预处理语句
1、设置预处理stmt,传递一个数据作为where的判断条件
prepare stmt from “select * from table_name where id > ?”;

2、设置一个变量
set @i = 1;

3、执行预处理语句
execute stmt using @i;

4、删除预处理指令
drop prepare stmt;

六、MySQL事务处理
【注意】MyISAM存储引擎对事务并不支持,应该使用InnoDB存储引擎

set autocommit = 0;              #关闭自动提交  
delete from t1 where id > 4;  
savepoint p1;                        #设置还原点  
delete from t1;  
rollback to p1;                       #回滚到p1还原点  
rollback;                                #回滚到最原始的还原点  
commit ;                                #提交数据到服务器  
set autocommit = 1;                #开启自动提交,关闭事务处理  

七、MySQL存储
1、创建一个存储p1()

mysql>\d //                             #修改定界符为//  
mysql>create procedure p1()  
        ->begin  
        ->set @i = 0;  
        ->while @i < 100 do  
        ->insert into t2(name) values(concat("user",@i));  
        ->set @i = @i + 1;  
       ->end while;  
       ->end;//  
mysql>\d ;  

 

2、执行p1()
call p1();
3、查看procedure的status信息
show procedure status \G

4、查看procedurep1的具体信息
show create procedure p1 \G

八、MySQL触发器
1、创建触发器
#创建一个名为t1的触发器,当向t1表中插入数据时,就引发动作:向t2表中插入数

mysql>\d //  
mysql>create trigger t1 before inserton t1 for each row  
        ->begin  
        ->insert into t2(name) values(new.name);  
        ->end//  
mysql>\d ;  

 

#创建触发器t2,如果表t1删除数据,则引发触发器,表t2中的数据也相应删除

mysql>\d //  
mysql>create trigger t2 before delete on t1 for each row  
       ->begin  
      ->delete from t2 where id =old.id;  
      ->end//  
mysql>\d ;  

 

#创建触发器t3,如果修改表t1则t2中的记录也相应修改

mysql>\d //  
mysql>create trigger t3 before update on t1 for each row  
        ->begin  
        ->update t2 set id =new.id where id = old.id;  
        ->end//  
mysql>\d ;  

 

2、删除触发器
drop trigger trigger_name;

【附】删除表中所有数据:truncatetable_name; #速度更快,同时也可以清空auto_increment列表

九、重排auto_increment值
MySQL中自动增长的ID如何恢复?
1、清空表的时候,不要用delete from table_name;
而是:truncate [table] table_name;

或者
2、清空内容之后直接使用alter命令修改表
  alter table table_name auto_increment = 1;

 

http://blog.csdn.net/zjf280441589/article/details/20217647

http://blog.csdn.net/zjf280441589/article/details/20230427

分享到:
评论

相关推荐

    2021年最新Java后端学习路线,适用于所有想要踏入Java行业的初学者(csdn)————程序.pdf

    此外,学习使用MongoDB数据库,高级Redis使用,即时通讯如WebSocket,非阻塞框架Netty和JUC多线程框架,MySQL优化策略等,将进一步提升你的技能。 最后,理解计算机网络、数据结构、算法、操作系统等基础知识,以及...

    MySql简单的入门教程

    ### MySQL简单入门教程知识点 #### 一、MySQL简介与安装前提 - **MySQL**是一种广泛使用的开源关系型数据库管理系统(RDBMS),支持多种操作系统。它以其高性能、稳定性和易用性而闻名,常用于Web应用的数据存储。 #...

    php学习教程——十天学会php

    在本“php学习教程——十天学会php”中,我们将深入探讨PHP这门流行的服务器端脚本语言,它被广泛用于构建动态网站和应用程序。PHP(Hypertext Preprocessor)是一种开源、跨平台的编程语言,以其易学易用、功能强大...

    PHP轻松入门——评《PHP4.0与MySQL动态网站编程》.pdf

    3. **MySQL数据库操作与应用**:书中涵盖了MySQL的基本操作和高级应用,帮助读者理解和掌握数据库管理。此外,还介绍了如何将PHP与MySQL结合,实现数据的交互。 4. **实际开发案例与综合实例**:这部分提供了各种...

    完整精品数据库课件 MySQL从入门到精通 第20章 PHP操作MySQL数据库(共7页).ppt

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而PHP是一种广泛使用的开源脚本语言,尤其适合于...随着经验的积累,可以进一步学习更高级的主题,如事务处理、存储过程、触发器等,提升数据库应用的复杂性和效率。

    MySQL学习资料PDF

    《MySQL必知必会》这本书是MySQL入门的经典之作,适合对数据库没有基础知识的读者。它详细介绍了MySQL的基本操作,包括如何创建数据库和表,执行SQL查询,处理数据,以及管理用户权限等。读者将学会如何使用SQL语言...

    Python入门——高级篇

    Python语言入门,高级篇,思维导图格式,精简版(Linux常用命令、多任务编程、网络编程、HTTP协议、Web服务器、HTML+CSS基础、JavaScript、jQuery、MySQL使用、闭包和装饰器、正则、mini-web框架),仅供参考

    java大众点评视频教程&源码.zip

    这个教程可能包含了从基础到高级的Java编程概念,以及如何将这些知识应用于实际的SSM(Spring、SpringMVC、MyBatis)框架中,同时提供了源代码,使学习者可以跟随教程进行实践操作,加深理解。 【标签】"SSM ...

    80个Python经典资料(教程+源码+工具)汇总——下载目录

    在提供的“80个Python经典资料(教程+源码+工具)汇总——下载目录”中,包含了丰富的Python学习资源,适合不同阶段的学习者使用。这些资源按照类型大致可以分为以下几个部分: 1. **Python专题资料**:提供了一系列...

    "玩转Python爬虫——入门与实践"课程源码

    在“玩转Python爬虫——入门与实践”这门课程中,你将深入学习到Python爬虫的基础知识和实战技巧。Python爬虫是数据采集的重要工具,尤其在大数据时代,爬虫技术对于获取网络上的非结构化信息具有举足轻重的作用。本...

    php程序员菜鸟成长手记 php入门教程 pdf

    ### PHP程序员菜鸟成长手记 —— PHP入门教程 #### 一、PHP简介 **1. Web程序工作原理** Web程序工作原理是指用户通过浏览器发送请求到服务器,服务器处理请求后返回响应的过程。在这个过程中,PHP作为一种服务器...

    mysql_in_a_nutshell_2nd_edition.pdf 英文全本

    - **Learning MySQL**:适合初学者的MySQL入门教程。 - **MySQL Cookbook**:包含了大量实用的MySQL技巧和解决方案。 - **MySQL Stored Procedure Programming**:专注于MySQL存储过程编程的高级指南。 - **...

    《PHP从入门到精通(第3版)》.[PDF]

    根据提供的文件信息,我们可以推断出这是一本关于PHP编程语言的学习资料——《PHP从入门到精通(第3版)》。接下来,我们将基于标题、描述、标签以及部分链接信息来详细阐述本书可能涵盖的一些重要知识点。 ### PHP...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    php和mysql web开发(原书第4版)英文版

    ### PHP与MySQL Web开发经典教程知识点总结 #### 一、书籍概述 《PHP与MySQL Web开发》(原书第4版)是一本被广泛认可的经典编程书籍,它深入浅出地介绍了如何使用PHP和MySQL进行Web应用开发。本书由Luke Welling...

    使用PHP&MySQL;构建自己的数据驱动网站(第4版)

    ##### 2.2 MySQL入门 - **MySQL基础操作**:讲解如何创建数据库、表以及添加数据等基本操作。 - **SQL语言**:重点介绍SQL查询语句,包括SELECT、INSERT、UPDATE、DELETE等,帮助读者掌握基本的数据库管理技能。 - *...

Global site tag (gtag.js) - Google Analytics