MySQL 若干操作
复制表结构+复制表数据
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 若干操作的更多相关文章
- Windows平台下MySQL常用操作与命令
Windows平台下MySQL常用操作与命令 Windows平台下MySQL常用操作与命令,学习mysql的朋友可以参考下. 1.导出整个数据库 mysqldump -u 用户名 -p --defau ...
- MySQL误操作后如何快速恢复数据
基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- PHP mysql基础操作
mysql连接操作 //建立连接$con = mysql_connect('localhost', 'root', '123456');//判断是否连接成功if($con){ die('连接失败!'. ...
- php : mysql数据库操作类演示
设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...
- python(pymysql)之mysql简单操作
一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...
- MySQL常用操作总结
MySQL常用操作 前提条件:已安装MySQL. 学习目标:用一条sql语句写出A和B的剩余数量 AA表 BB表 以上为一道面试题,接下来由这道面试题来回顾一些数据库的基本操作. 登录MySQL su ...
- Python学习笔记15—mysql的操作
安装 Python-MySQLdb pip install mysql-Python Python对mysql的操作 建立一个实验数据库demo mysql> create database d ...
随机推荐
- [svc]Iaas Paas Saas区别
https://www.zhihu.com/question/20387284
- JAVA calling convention
http://stackoverflow.com/questions/28126082/where-does-the-jit-compiled-code-reside https://wiki.ope ...
- read pread write pwrite open
http://stackoverflow.com/questions/7592822/what-are-the-advantages-of-pwrite-and-pread-over-fwrite-a ...
- Mvc4 Layout布局与页面SEO信息title,keyword,description
工作已经五个年头了,在进入工作岗位时最初在.net 2.0平台一直到现在的.net 4.0平台下,开发了不少的winform.webform项目:五年的工作时间,在公司主持开发和维护了不少的电子商务w ...
- linux系统资源网站
http://upstream.rosalinux.ru/ API/ABI changes analysis for C/C++ libraries
- 异常处理:1215 - Cannot add foreign key constraint
最近在做新生入学系统,学生表中包括新生的班级,专业等信息,班级,专业就需要和班级表,专业表进行关联,但是在添加外键的过程中却出现了“Cannot add foreign key constraint” ...
- C/C++数组名与指针区别深入探索(转载)
转载自: C/C++数组名与指针区别深入探索 引言 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用.于是乎,很多程序设计者就被搞糊涂了.而许多的大学老师, ...
- FreeRTOS 任务栈大小确定及其溢出检测
以下转载自安富莱电子: http://forum.armfly.com/forum.php FreeRTOS 的任务栈设置不管是裸机编程还是 RTOS 编程,栈的分配大小都非常重要. 局部变量,函数调 ...
- 观察者模式(Head First设计模式学习2)
1.1观察者模式定义 在给出观察者模式的定义之前,我们先来看个报纸和杂志的订阅是怎么回事: 1.报社的业务就是出版报纸 2.向某家报社订阅报纸,只有新报纸出版,报社才会送给你,只要你是用户,他就会一直 ...
- java中的访问控制符
首先来一张图: 对于一个类而言访问控制符只有一个public和默认无修饰符.其他的几个访问修饰符对于变量和方法都可以使用. 下面介绍具体的使用. 1. 公有访问控制符(public) Java的类是通 ...