复制表结构+复制表数据

mysql> create table t3 like t1;

mysql> insert into t3 select * from t1;

mysql索引

1.ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引

ALTER TABLE table_name ADD INDEX index_name (column_list)

ALTER TABLE table_name ADD UNIQUE (column_list)

ALTER TABLE table_name ADD PRIMARY KEY (column_list)

2.create index

CREATE INDEX index_name ON table_name (column_list)

CREATE UNIQUE INDEX index_name ON table_name (column_list)

3.drop index

DROP INDEX index_name ON talbe_name

4.alter table table drop

ALTER TABLE table_name DROP INDEX index_name

ALTER TABLE table_name DROP PRIMARY KEY

mysql视图

创建视图:

mysql> create view v_t1 as select * from t1 where id>4 and id<11;

Query OK, 0 rows affected (0.00 sec)

view视图的帮助信息:

mysql> ? view

ALTER VIEW

CREATE VIEW

DROP VIEW

查看视图:

mysql> show tables;

删除视图v_t1:

mysql> drop view v_t1;

mysql内置函数

字符串函数:

CONCAT (string2  [,… ])         //连接字串

LCASE (string2 )                      //转换成小写

UCASE (string2 )                      //转换成大写

LENGTH (string )                     //string长度

LTRIM (string2 )                      //去除前端空格

RTRIM (string2 )                      //去除后端空格

REPEAT (string2 ,count )         //重复count次

REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替换search_str

SUBSTRING (str , position  [,length ])  //从str的position开始,取length个字符

SPACE(count)                          //生成count个空格

数学函数:

BIN (decimal_number )                    //十进制转二进制

CEILING (number2 )                        //向上取整

FLOOR (number2 )                          //向下取整

MAX(num1 ,num2)                          //取最大值

MIN(num1,num2)                           //取最小值

SQRT(number2)                             //开平方

RAND()                                         //返回0-1内的随机值

日期函数:

CURDATE()                          //返回当前日期

CURTIME()                           //返回当前时间

NOW()  //返回当前的日期时间

UNIX_TIMESTAMP(date)   //返回当前date的UNIX日间戳

FROM_UNIXTIME()                //返回UNIX时间戳的日期值

WEEK(date)    //返回日期date为一年中的第几周

YEAR(date)  //返回日期date的年份

DATEDIFF(expr,expr2)  //返回起始时间expr和结束时间expr2间天数

mysql预处理语句

设置stmt1预处理,传递一个数据作为一个where判断条件:

mysql> prepare stmt1 from 'select * from t1 where id>?';

设置一个变量:

mysql> set @i=1;

执行stmt1预处理:

mysql> execute stmt1 using @i;

设置@i为5:

mysql> set @i=5;

再次去执行stmt1:

mysql> execute stmt1 using @i;

如何删除预处理stmt1:

mysql> drop prepare stmt1;

mysql事务处理

关闭自动提交功能

mysql> set autocommit=0;

从表t1中删除了一条记录

mysql> delete from t1 where id=11;

此时做一个p1还原点:

mysql> savepoint p1;

再次从表t1中删除一条记录:

mysql> delete from t1 where id=10;

再次做一个p2还原点:

mysql> savepoint p2;

此时恢复到p1还原点,当然后面的p2这些还原点自动会失效:

mysql> rollback to p1;

退回到最原始的还原点:

mysql> rollback ;

mysql存储

创建一个存储p1();

mysql> \d //

mysql> create procedure p1()

-> begin

-> set @i=0;

-> while @i<10 do

-> select @i;

-> set @i=@i+1;

-> end while;

-> end;

-> //

执行存储p1();

mysql> \d ;

mysql> call p1();

查看procedure p1()的status信息

mysql> show procedure status\G

查看procedure p1()的具体信息:

mysql> show create procedure p1\G

mysql触发器

修改delimiter为//
mysql>
\d //

创建一个名字为tg1的触发器,当向t1表中插入数据时,就向t2表中插入一条数据

mysql>
create trigger tg1 before insert on t1 for each row

>begin

>insert
into t2(id) values(new.id);

>end//;

准备两个空表t1和t2

mysql>
select * from t1;

mysql>
select * from t2;

向t1表中插入多条数据:

mysql>
insert into t1 values(1),(2),(3),(4);

如何制作删除表t1后t2表中的记录也会跟着删除呢?

mysql>\d //

mysql> create trigger tg2 before delete on t1 for each row

>begin delete from t2 where id=old.id;

>end//

mysql>\d ;

如何制作更改表t1后t2表中的记录跟着个性呢?

mysql>\d //

mysql> create trigger tg3 before update on t1 for each row

>begin update t2 set id=new.id where id=old.id;

>end//

mysql>\d ;

查看触发器:

mysql> show triggers

重排auto_increment值

MYSQL数据库自动增长的ID如何恢复

清空表的时候。不能用
delete
from tablename;
而是要用:
truncate
table tablename;
这样auto_increment
就恢复成1了

或者清空内容后直接用ALTER命令修改表:
alter table tablename
auto_increment =1;

MySQL 若干操作的更多相关文章

  1. Windows平台下MySQL常用操作与命令

    Windows平台下MySQL常用操作与命令 Windows平台下MySQL常用操作与命令,学习mysql的朋友可以参考下. 1.导出整个数据库 mysqldump -u 用户名 -p --defau ...

  2. MySQL误操作后如何快速恢复数据

    基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...

  3. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  4. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  5. PHP mysql基础操作

    mysql连接操作 //建立连接$con = mysql_connect('localhost', 'root', '123456');//判断是否连接成功if($con){ die('连接失败!'. ...

  6. php : mysql数据库操作类演示

    设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...

  7. python(pymysql)之mysql简单操作

    一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...

  8. MySQL常用操作总结

    MySQL常用操作 前提条件:已安装MySQL. 学习目标:用一条sql语句写出A和B的剩余数量 AA表 BB表 以上为一道面试题,接下来由这道面试题来回顾一些数据库的基本操作. 登录MySQL su ...

  9. Python学习笔记15—mysql的操作

    安装 Python-MySQLdb pip install mysql-Python Python对mysql的操作 建立一个实验数据库demo mysql> create database d ...

随机推荐

  1. Java:多线程,线程同步,synchronized关键字的用法(同步代码块、非静态同步方法、静态同步方法)

    关于线程的同步,可以使用synchronized关键字,或者是使用JDK 5中提供的java.util.concurrent.lock包中的Lock对象.本文探讨synchronized关键字. sy ...

  2. Shiro整合SSH开发3:配置Shiro认证后页面地址跳转问题(和详述不配置须要注意的问题)

         在视频教程中讲请求认证成功后跳转页面的问题是一笔带过的,可是我认为有必要单独写一篇相应的文章进行叙述.      我用了SSH来整合Shiro,在开发后验证的过程中,每次登陆后Shiro都会 ...

  3. 网络编程之TCP/UDP及其流程比较(转)

    TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式TCP保证数据正确性,UDP可能丢包TCP保证数据顺序,UDP不保证 具体编程 ...

  4. 重温java中的String,StringBuffer,StringBuilder类

    不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...

  5. OpenVpn的ipp.txt文件

    ipp=ip pool我猜得,呵呵 ipp.txt文件中存放上一次连接时,客户端分配的ip地址. ipp.txt用来保存上次的连接状态的,并不能为客户端设置固定ip地址. 该文件的格式为:用户名,ip ...

  6. git使用(一)----git安装

    windows安装git msysgit是windows版本的Git 下载地址:https://git-for-windows.github.io/ 安装步骤 linux安装git https://g ...

  7. [na]acl拒绝访问流量审计

    acl审计拒绝的流量及拒绝提示 interface Ethernet0/0 ip address 12.1.1.2 255.255.255.0 ip access-group 10 in half-d ...

  8. Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(3)

    Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(3) 一.配置共享存储 [oracle@aix203 ~]$lsdev -c disk hdisk0 Available ...

  9. Java多线程和并发基础

    第一:Java多线程面试问题 1:进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运 ...

  10. 【Java】高并发同步Volatile的使用

    引言: 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的Synchronized,它在多处理器开发中保证了共享变量的“可见性”. 可见性的意思 ...