**一、操作技巧**
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。
** 二、常用命令**
1、显示当前数据库服务器中的数据库列表:
mysql> SHOW DATABASES;
2、建立数据库:
mysql> CREATE DATABASE 库名;
mysql> CREATE DATABASE IF NOT EXISTS my\_db default charset utf8 COLLATE utf8\_general\_ci;
3、建立数据表:
mysql> USE 库名;
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
4、删除数据库:
mysql> DROP DATABASE 库名;
5、删除数据表:
mysql> DROP TABLE 表名;
6、将表中记录清空:
mysql> DELETE FROM 表名;
7、往表中插入记录:
mysql> INSERT INTO 表名 VALUES ("hyq","M");
8、更新表中数据:
mysql-> UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';
9、用文本方式将数据装入数据表中:
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE 表名;
10、导入.sql文件命令:
mysql> USE 数据库名;
mysql> SOURCE d:/mysql.sql;
11、命令行修改root密码:
mysql> UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';
mysql> FLUSH PRIVILEGES;
** 三、一个建库和建表以及插入数据的实例**
drop database if exists school; //如果存在sudu则删除
create database sudu; //建立库sudu
use school; //打开库sudu
create table teacher //建立表TEACHER
(
id int(3) auto\_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表结束
//以下为插入字段
insert into teacher values('','allen','飞数科技1','2005-10-10');
insert into teacher values('','jack','飞数科技2','2005-12-23');如果你在mysql提示符键入上面的命令也可以,但不方便调试。
(1)你可以将以上命令原样写入一个文本文件中,假设为sudu.sql,然后复制到c:\\\\下,并在DOS状态进入目录\\mysql\\bin,然后键入以下命令:
mysql -uroot -p密码 < c:\\sudu.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
(2)或者进入命令行后使用 mysql> source c:\\sudu.sql; 也可以将sudu.sql文件导入数据库中。
** 四、将文本数据转到数据库中**
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\\n来代替.例:
3 rose 飞数科技1 1976-10-10
4 mike 飞数科技2 1975-12-23
假设你把这两组数据存为速度sudu.txt文件,放在c盘根目录下。
2、数据传入命令 load data local infile "c:\\sudu.txt" into table 表名;
注意:你最好将文件复制到\\mysql\\bin目录下,并且要先用use命令打表所在的库。
** 五、备份数据库:(命令在DOS的\\mysql\\bin目录下执行)**
1.导出整个数据库
导出文件默认是存在mysql\\bin目录下
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u user\_name -p123456 database\_name > outfile\_name.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user\_name -p database\_name table\_name > outfile\_name.sql
3.导出一个数据库结构
mysqldump -u user\_name -p -d --add-drop-table database\_name > outfile\_name.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.带语言参数导出
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt database\_name > outfile\_name.sql
# [mysql导入导出sql文件](https://www.cnblogs.com/yuwensong/p/3955834.html)
window下
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u dbuser -p dbname > dbname.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u dbuser -p dbname users> dbname\_users.sql
3.导出一个数据库结构
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname\_db.sql
\-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,如
mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:/dbname.sql
**1.** 导入数据到数据库
mysql -uroot -D数据库名
**1.** 导入数据到数据库中得某个表
mysql -uroot -D数据库名 表名
**D:\\APMServ5.2.6\\MySQL5.1\\bin>mysqldump -u root -p erp lightinthebox\_tags > ligh
tinthebox.sql**
**linux下**
一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码
2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ ---> mysql的data目录
二、导入数据库
1、首先建空数据库
mysql>create database abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc\_f -p abc < abc.sql
#### -- 查询字段名和字段注释
~~~
SELECT `column_name`, `column_comment` FROM `information_schema`.`columns` WHERE `table_name` = '表名' AND `table_schema` = '数据库名'
~~~
#### -- 创建索引
~~~
// 1.添加PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
// 2.添加UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (
`column`
)
// 3.添加INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
// 4.添加FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
// 5.添加多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
~~~
#### -- 查询输出数据库中所有的索引
~~~
SELECT CONCAT('ALTER TABLE `',TABLE_NAME,'` ', 'ADD ', IF(NON_UNIQUE = 1, CASE UPPER(INDEX_TYPE) WHEN 'FULLTEXT' THEN 'FULLTEXT INDEX' WHEN 'SPATIAL' THEN 'SPATIAL INDEX' ELSE CONCAT('INDEX `', INDEX_NAME, '` USING ', INDEX_TYPE ) END, IF(UPPER(INDEX_NAME) = 'PRIMARY', CONCAT('PRIMARY KEY USING ', INDEX_TYPE ), CONCAT('UNIQUE INDEX `', INDEX_NAME, '` USING ', INDEX_TYPE ) ) ),'(', GROUP_CONCAT(DISTINCT CONCAT('`', COLUMN_NAME, '`') ORDER BY SEQ_IN_INDEX ASC SEPARATOR ', '), ');') AS 'Show_Add_Indexes' FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = '数据库名' GROUP BY TABLE_NAME, INDEX_NAME ORDER BY TABLE_NAME ASC, INDEX_NAME ASC;
~~~
#### -- 创建存储过程
-- 更新超时订单相关押金数额的存储过程
~~~
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_dopfren_plusminus`()
BEGIN
UPDATE `order` SET status='-1' WHERE DATE(SYSDATE())=DATE_ADD(overtime_date, INTERVAL 1 DAY) AND status BETWEEN 1 AND 2;
UPDATE order_detail d SET d.deposit=d.deposit-(d.price*0.05) WHERE d.order_id IN (SELECT id FROM `order` WHERE status = '-1');
UPDATE `order` SET freeze = freeze + `totalprice`*0.05 WHERE status='-1';
UPDATE `order` SET status='-2' WHERE freeze=totalprice;
END;;
DELIMITER ;
~~~
#### -- 查看库中有哪些存储过程
`SHOW PROCEDURE STATUS -- WHERE DB='xxx';`
#### -- 查看event事件是否开启
`SHOW VARIABLES LIKE '%event_scheduler%';`
#### -- 开启event事件
`SET GLOBAL event_scheduler = ON; `
#### -- 创建定时任务
~~~
CREATE DEFINER=`root`@`localhost` EVENT `auto_mipu_depofren_day` ON SCHEDULE EVERY 1 DAY STARTS date_add(date(curdate() + 1),interval 0 hour) ON COMPLETION PRESERVE ENABLE DO call `proc_dopfren_plusminus`;-- 每天0点
CREATE DEFINER=`root`@`localhost` EVENT `auto_mipu_depofren_day` ON SCHEDULE EVERY 1 HOUR STARTS concat(date_format(now(),'%Y-%m-%d %H'),':00:00') ON COMPLETION PRESERVE ENABLE DO call `proc_dopfren_plusminus`;##每小时0分
CREATE DEFINER=`root`@`localhost` EVENT `auto_mipu_depofren_day` ON SCHEDULE EVERY 5 MINUTE STARTS concat(date_format(now(),'%Y-%m-%d %H'),':00:00') ON COMPLETION PRESERVE ENABLE DO call `proc_dopfren_plusminus`;##每5分钟0秒
~~~
#### -- 启动事件任务
~~~
ALTER EVENT `auto_mipu_depofren_day` ON
COMPLETION PRESERVE ENABLE;
~~~
#### -- 关闭事件任务
~~~
ALTER EVENT `auto_mipu_depofren_day` ON
COMPLETION PRESERVE DISABLE;
~~~
#### -- 查询数据库中的事件任务
`SELECT * FROM INFORMATION_SCHEMA.EVENTS;`
#### -- 系统版本和系统时间的一些查看方式
~~~
SHOW VARIABLES like '%version%';
SELECT SYSDATE();
SELECT DATEDIFF(date('2016-8-9'), utc_date);
SELECT DATE_ADD(date(now()), INTERVAL 30 DAY);
SELECT DATE_ADD(date('2016-8-2'), INTERVAL 30 DAY);
SELECT DATE('2016-8-30 17:31:59');
SELECT DATE_ADD(DATE(CURDATE() + 1),INTERVAL 1 HOUR);
SELECT CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d %H'),':01:00');
SELECT TIMESTAMP(CURDATE() + INTERVAL 1 DAY + INTERVAL 1 HOUR);
SELECT TIMESTAMP(CURRENT_DATE() + INTERVAL 1 DAY + INTERVAL 1 HOUR);
SELECT DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR);
SELECT (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP('2016-09-23 09:35:50')); -- 两个时间差(分钟) /60为时间差(秒);
SELECT * FROM `table1` WHERE SYSDATE()>overtime AND status BETWEEN 1 AND 2;
ALTER TABLE `addon_common_weiyuyue_storage` ADD COLUMN `appointment_id` INT(10) UNSIGNED NOT NULL COMMENT '预约服务ID';
SELECT `column_name`, `column_comment` FROM `information_schema`.columns WHERE `table_schema`='wemall7' and `table_name` = 'addon_common_weiyuyue_storage';
ALTER TABLE `addon_common_weiyuyue_storage` ADD UNIQUE KEY (`appointment_id`);
~~~
#### -- LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并装入一个表中。文件名称必须为一个文字字符串
使用方法可参考[http://www.jb51.net/article/58093.htm](http://www.jb51.net/article/58093.htm)
- JavaScript笔记
- JQuery
- Echarts初级入门
- Js常用正则表达式
- 使用vuejs前端框架
- Bootbox.js官方文档中文版
- LocalStorage基本用法小结
- Toastr消息提示插件中文文档
- Ajax提交Form数据及文件上传
- Nodejs笔记
- Python笔记
- Scrapy爬虫技术
- Django框架
- Java笔记
- 环境搭建
- Php笔记
- MacOS 10.13.6搭建PHP开发环境
- Php常见问题及解决方法
- 玩转laravel之homestead
- Apache服务器的基本操作
- 如何使用CentOS7 + Lnmp
- ThinkPHP爬坑之路
- 初识Swoole
- 小贴士
- 习题集
- 方法集
- 数据库
- mysql
- 常用的SQL语句
- 日常操作和设置
- 常见问题及解决办法
- 读写分离和主从复制
- 数据表分区
- postgresql
- 在PHP中的应用
- redis
- 测试
- 接口测试
- Web测试
- 杂项
- Sublime text3使用小贴士
- 利用虚拟机学习Linux
- PHPstorm常用设置
- Windows实用tips
- 微信开发小知识
- Git常用操作
- Swift入门
- 机器学习
- 系统命令
- 网络拾贝
