mysql常用语句

2
MySQL SQL 数据库 C/C++ 13099 次浏览

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.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" (int);
13.插入不重复数据
  1. insert into node (name) select 'a' where no exists(select id from node where id=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%';
end
请尽量让自己的答案能够对别人有帮助

8个答案

默认排序 按投票排序