MySQL数据库常用操作

1.复制表结构和数据,但是不复制索引和外键:

  1. create table a select * from b;

2.复制表结构和索引和外键,不复制数据:

  1. create table a like b;

3.只复制数据:

  1. insert into a select * from b;

4.移动表到另一个库

  1. rename table a.t to b.t;

5.删除重复记录

  1. --新建一个临时表 
  2.   create table tmp as select * from youtable group by name ;
  3. --删除原来的表 
  4.   drop table youtable ;
  5. --重命名表 
  6.   alter table tmp rename youtable;
  1. --新建一个临时表 
  2.   create table tmp like youtable;
  3. --取出不重复的数据 
  4.   insert into select * from youtable group by name;
  5. --清空原来的表 
  6.   truncate youtable;
  7. --插入原来的表 
  8.   insert into youtable select * from tmp; 
  9. --重命名表 
  10.   drop table tmp;

6.重命名数据库

到/var/lib/mysql/

修改对应数据库的文件夹名即可

7.时间格式

  1. SELECT FROM_UNIXTIME( 1249488000,'%Y-%m-%d %H:%i:%s') ;
  2. SELECT DATE_FORMAT('1997-10-04 22:23:00', '%Y-%m-%d %H:%i:%s');
  3. SELECT UNIX_TIMESTAMP('2009-08-06') ;

8.mysql日志

  1. --查看日志
  2. show binary logs;
  3. show master logs;
  4. --清除日志
  5. PURGE MASTER LOGS TO 'mysql-bin.000035';
  6. --手动删除10天前的mysql binlog日志
  7. PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);

9.获得更新记录数

  1. select ROW_COUNT();

10.获得找到的记录数

  1. select FOUND_ROWS();

11.获得插入的id

  1. select LAST_INSERT_ID();

12.创建特殊表名

  1. SET sql_mode='ANSI_QUOTES';
  2. create table "a-b" (a int);

13.插入不重复数据

  1. insert into node (name) select 'a' where no exists(select id from node where id=2 and name='a')

14.uuid

  1. select replace(uuid(), '-', '');

15.添加一个远程用户,名为username密码为password

  1. GRANT ALL PRIVILEGES ON *.* TO username@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;

16.从文件导入数据

  1. LOAD DATA INFILE '/tmp/result100.txt' INTO TABLE analy_ip_file2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

17.添加主键

  1. alter table userconfig add id int(4) auto_increment primary key;

18.查看mysql参数

  1. show variables like '%max%';
  1. MYSQL忘记密码解决办法 
    在windows下: 
    打开命令行窗口,停止mysql服务:Net stop mysql 
    到mysql的安装路径启动mysql,在bin目录下使用mysqld-nt.exe启动,在命令行窗口执行:mysqld-nt --skip-grant-tables 
    然后另外打开一个命入令行窗口,执行mysql,此时无需输入密码即可进入。 
    >use mysql 
    >update user set password=password("new_pass") where user="root"; 
    >flush privileges; 
    >exit 
    使用任务管理器,找到mysqld-nt的进程,结束进程! 
    在重新启动mysql-nt服务,就可以用新密码登录了。 

    在linux下: 
    如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。 
    启动 MySQL :bin/safe_mysqld --skip-grant-tables & 
    就可以不需要密码就进入 MySQL 了。 
    然后就是 
    >use mysql 
    >update user set password=password("new_pass") where user="root"; 
    >flush privileges; 
    重新杀 MySQL ,用正常方法启动 MySQL 。 

    5. 更改MYSQL的默认字符集 

    法1、 用 SET 语法来指定,不加 "GLOBAL" 的话就只对本次会话有效 
    SET [GLOBAL] character_set_client = utf8; 
    SET [GLOBAL] character_set_connection = utf8; 
    SET [GLOBAL] character_set_database = utf8; 
    SET [GLOBAL] character_set_results = utf8; 
    SET [GLOBAL] character_set_server = utf8; 

    方法2、 也用SET语法,只对本次会话有效 
    SET NAMES 'utf8'; 

    方法3、) 直接修改 my.cnf,增加一行内容,然后重启 MySQL,使之全局生效 
    default-character-set = utf8 

    6.MYSQL慢查询分析工具:mysqldumpslow 
  2.  

mysql> source   d:/myprogram/database/db.sql;

另附mysql常用命令:

一) 连接MYSQL:

    格式: mysql -h主机地址 -u用户名 -p用户密码

1、例1:连接到本机上的MYSQL

    首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符 是:mysql>

2、例2:连接到远程主机上的MYSQL (远程:IP地址)

    假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:

   mysql -h10.0.0.1 -uroot -p123

   (注:u与root可以不用加空格,其它也一样)

3、退出MYSQL命令

    exit (回车)

(二) 修改密码:

    格式:mysqladmin -u用户名 -p旧密码 password 新密码

1、例1:给root加个密码123。首先在DOS下进入目录C:/mysql/bin,然后键入以下命令:

    mysqladmin -uroot -password 123

    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

2、例2:再将root的密码改为456

    mysqladmin -uroot -pab12 password 456

(三) 增加新用户:(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

    格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"

    例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入 MYSQL,然后键入以下命令:     grant select,insert,update,delete on *.* to test2@localhost identified by "abc";

    如果你不想test2有密码,可以再打一个命令将密码消掉。     grant select,insert,update,delete on mydb.* to test2@localhostidentified by "";

(四) 显示命令

1、显示数据库列表:

    show databases;     刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

2、显示库中的数据表:

    use mysql; //打开库    show tables;

3、显示数据表的结构:

    describe 表名;

4、建库:

    create database 库名;

5、建表:

    use 库名;     create table 表名 (字段设定列表);

6、删库和删表:

    drop database 库名;     drop table 表名;

7、将表中记录清空:

    delete from 表名;

8、显示表中的记录:

    select * from 表名;

导出sql脚本

 

mysqldump -u 用户名 -p 数据库名 > 存放位置

mysqldump -u root -p test > c:/a.sql

导入sql脚本

 mysql -u 用户名 -p 数据库名 < 存放位置

mysqljump -u root -p test < c:/a.sql

 注意,test数据库必须已经存在

MySQL导出导入命令的用例

1.导出整个数据库

 mysqldump -u 用户名 -p 数据库名 > 导出的文件名

mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

 2.导出一个表

 mysqldump -u 用户名 -p 数据库名表名> 导出的文件名

mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

3.导出一个数据库结构

 mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库

 常用source 命令

进入mysql数据库控制台,

如mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source d:wcnc_db.sql

1.复制表结构和数据,但是不复制索引和外键:

  1. create table a select * from b;

2.复制表结构和索引和外键,不复制数据:

  1. create table a like b;

3.只复制数据:

  1. insert into a select * from b;

4.移动表到另一个库

  1. rename table a.t to b.t;

5.删除重复记录

  1. --新建一个临时表 
  2.   create table tmp as select * from youtable group by name ;
  3. --删除原来的表 
  4.   drop table youtable ;
  5. --重命名表 
  6.   alter table tmp rename youtable;
  1. --新建一个临时表 
  2.   create table tmp like youtable;
  3. --取出不重复的数据 
  4.   insert into select * from youtable group by name;
  5. --清空原来的表 
  6.   truncate youtable;
  7. --插入原来的表 
  8.   insert into youtable select * from tmp; 
  9. --重命名表 
  10.   drop table tmp;

6.重命名数据库

到/var/lib/mysql/

修改对应数据库的文件夹名即可

7.时间格式

  1. SELECT FROM_UNIXTIME( 1249488000,'%Y-%m-%d %H:%i:%s') ;
  2. SELECT DATE_FORMAT('1997-10-04 22:23:00', '%Y-%m-%d %H:%i:%s');
  3. SELECT UNIX_TIMESTAMP('2009-08-06') ;

8.mysql日志

  1. --查看日志
  2. show binary logs;
  3. show master logs;
  4. --清除日志
  5. PURGE MASTER LOGS TO 'mysql-bin.000035';
  6. --手动删除10天前的mysql binlog日志
  7. PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);

9.获得更新记录数

  1. select ROW_COUNT();

10.获得找到的记录数

  1. select FOUND_ROWS();

11.获得插入的id

  1. select LAST_INSERT_ID();

12.创建特殊表名

  1. SET sql_mode='ANSI_QUOTES';
  2. create table "a-b" (a int);

13.插入不重复数据

  1. insert into node (name) select 'a' where no exists(select id from node where id=2 and name='a')

14.uuid

  1. select replace(uuid(), '-', '');

15.添加一个远程用户,名为username密码为password

  1. GRANT ALL PRIVILEGES ON *.* TO username@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;

16.从文件导入数据

  1. LOAD DATA INFILE '/tmp/result100.txt' INTO TABLE analy_ip_file2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

17.添加主键

  1. alter table userconfig add id int(4) auto_increment primary key;

18.查看mysql参数

  1. show variables like '%max%';
  1. MYSQL忘记密码解决办法 
    在windows下: 
    打开命令行窗口,停止mysql服务:Net stop mysql 
    到mysql的安装路径启动mysql,在bin目录下使用mysqld-nt.exe启动,在命令行窗口执行:mysqld-nt --skip-grant-tables 
    然后另外打开一个命入令行窗口,执行mysql,此时无需输入密码即可进入。 
    >use mysql 
    >update user set password=password("new_pass") where user="root"; 
    >flush privileges; 
    >exit 
    使用任务管理器,找到mysqld-nt的进程,结束进程! 
    在重新启动mysql-nt服务,就可以用新密码登录了。 

    在linux下: 
    如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。 
    启动 MySQL :bin/safe_mysqld --skip-grant-tables & 
    就可以不需要密码就进入 MySQL 了。 
    然后就是 
    >use mysql 
    >update user set password=password("new_pass") where user="root"; 
    >flush privileges; 
    重新杀 MySQL ,用正常方法启动 MySQL 。 

    5. 更改MYSQL的默认字符集 

    法1、 用 SET 语法来指定,不加 "GLOBAL" 的话就只对本次会话有效 
    SET [GLOBAL] character_set_client = utf8; 
    SET [GLOBAL] character_set_connection = utf8; 
    SET [GLOBAL] character_set_database = utf8; 
    SET [GLOBAL] character_set_results = utf8; 
    SET [GLOBAL] character_set_server = utf8; 

    方法2、 也用SET语法,只对本次会话有效 
    SET NAMES 'utf8'; 

    方法3、) 直接修改 my.cnf,增加一行内容,然后重启 MySQL,使之全局生效 
    default-character-set = utf8 

    6.MYSQL慢查询分析工具:mysqldumpslow 
  2.  

mysql> source   d:/myprogram/database/db.sql;

另附mysql常用命令:

一) 连接MYSQL:

    格式: mysql -h主机地址 -u用户名 -p用户密码

1、例1:连接到本机上的MYSQL

    首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符 是:mysql>

2、例2:连接到远程主机上的MYSQL (远程:IP地址)

    假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:

   mysql -h10.0.0.1 -uroot -p123

   (注:u与root可以不用加空格,其它也一样)

3、退出MYSQL命令

    exit (回车)

(二) 修改密码:

    格式:mysqladmin -u用户名 -p旧密码 password 新密码

1、例1:给root加个密码123。首先在DOS下进入目录C:/mysql/bin,然后键入以下命令:

    mysqladmin -uroot -password 123

    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

2、例2:再将root的密码改为456

    mysqladmin -uroot -pab12 password 456

(三) 增加新用户:(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

    格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"

    例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入 MYSQL,然后键入以下命令:     grant select,insert,update,delete on *.* to test2@localhost identified by "abc";

    如果你不想test2有密码,可以再打一个命令将密码消掉。     grant select,insert,update,delete on mydb.* to test2@localhostidentified by "";

(四) 显示命令

1、显示数据库列表:

    show databases;     刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

2、显示库中的数据表:

    use mysql; //打开库    show tables;

3、显示数据表的结构:

    describe 表名;

4、建库:

    create database 库名;

5、建表:

    use 库名;     create table 表名 (字段设定列表);

6、删库和删表:

    drop database 库名;     drop table 表名;

7、将表中记录清空:

    delete from 表名;

8、显示表中的记录:

    select * from 表名;

导出sql脚本

 

mysqldump -u 用户名 -p 数据库名 > 存放位置

mysqldump -u root -p test > c:/a.sql

导入sql脚本

 mysql -u 用户名 -p 数据库名 < 存放位置

mysqljump -u root -p test < c:/a.sql

 注意,test数据库必须已经存在

MySQL导出导入命令的用例

1.导出整个数据库

 mysqldump -u 用户名 -p 数据库名 > 导出的文件名

mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

 2.导出一个表

 mysqldump -u 用户名 -p 数据库名表名> 导出的文件名

mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

3.导出一个数据库结构

 mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库

 常用source 命令

进入mysql数据库控制台,

如mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source d:wcnc_db.sql

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值