MYSQL常用语句,值得珍藏!
访问表
select * from 表 limit 10
连接到本机上的MYSQL mysql -h localhost -u root -p
随机取记录 select * from 表名 order by rand() limit 0,5 (0-5)
断开服务器 quit
查看数据库 show databases;
选择数据库 use 数据库名;
查看表 show tables;
查看表结构 describe 表名;
插入记录 insert into 表名 set 字段名='值',字段名='值';
select 字段1,字段2`````字段N from 表 where 字段1=条件值“
查看表中的所有记录 select * from
条件查询 select * from 表名 where 条件;
模糊查询 select * from 表名 where 字段名 like '%关键字%';
模糊查询(返回0-1000条记录) select * from 表名 where 字段名 like '%关键字%' LIMIT 0,1000;
排序行 select * from 表名 ORDER BY 字段名;
排序行(降序) select * from 表名 ORDER BY 字段名 DESC;
返回空表 SELECT * FROM 表名 LIMIT 0
修改记录 update 表名 set 更改值 where 条件;
修改记录 update 表 set 字段c='512021'+right(字段c,len(字段c)-len('513921')) where left(字段c,len('513921'))='513921'
修改记录 update 表 set 字段c=repalce(字段c,'513921','512021')
删除记录 delete from 表名 where 条件;
创建数据库 create database 库名
创建表 create table 表名 ( 字段名 字段类型(字段长度) PRIMARY KEY AUTO_INCREMENT,,,,);
内存中创建表 CREATE TEMPORARY TABLE 表名 SELECT * FROM 源表 WHERE 条件;
复制表 CREATE TABLE 表名 SELECT * from 源表;
复制表结构 create table 表名2 like 表名1;
删除表 drop TABLE IF EXISTS table 表名;
清空表 delete from 表名
清空表 TRUNCATE TABLE 表名
创建索引 CREATE INDEX 索引名 ON 表名 (列名(10));
删除索引 DROP INDEX 索引名 ON 表名
看清一张表有什么索引 SHOW INDEX FROM ptmp2
列的最大值 select MAX(字段名) AS 字段名的最大值 FROM 表名
列的最小值 select MIN(字段名) AS 字段名的最小值 FROM 表名
列的总和 select SUM(字段名) AS 字段名的总和 FROM 表名
列的平均 select AVG(字段名) AS 字段名的平均 FROM 表名
返回表的总行数 SELECT COUNT(*) FROM 表名;
精确查找 select * from 表名 where 字段名=' 要查找的内容 ';
查找某字段 select * from 表 order by 字段
去除重复后输出记录 select DISTINCT 字段名 FROM 表名;
修改密码 UPDATE user SET Password=PASSWORD('密码') WHERE user='用户名';
增加新用户 grant select on 数据库.* to 用户名@登录主机 identified by "密码"
备份数据库 mysqldump --opt 原库名>备份库名
delete * from 表 where 编号 not in (select min(编号) from 表 group by 电话);删除重复项
SELECT * INTO OUTFILE 'file_name' FROM 表名 做有选择的备份并且用LOAD DATA INFILE 'file_name' REPLACE ...恢复。为了避免重复记录,在表中你需要一个PRIMARY KEY或UNIQUE键。当在唯一键值上一个新记录与一个老记录重复时,REPLACE关键词使得老记录用一个新记录替代。
LOAD DATA INFILE "C://tmp//skr.txt" INTO TABLE skr;
SELECT * FROM skr INTO OUTFILE 'C:/tmp/skr.txt';
回收表闲置的空间
连接到本机上的MYSQL mysql -h localhost -u root -p
随机取记录 select * from 表名 order by rand() limit 0,5 (0-5)
断开服务器 quit
查看数据库 show databases;
选择数据库 use 数据库名;
查看表 show tables;
查看表结构 describe 表名;
插入记录 insert into 表名 set 字段名='值',字段名='值';
select 字段1,字段2`````字段N from 表 where 字段1=条件值“
查看表中的所有记录 select * from
条件查询 select * from 表名 where 条件;
模糊查询 select * from 表名 where 字段名 like '%关键字%';
模糊查询(返回0-1000条记录) select * from 表名 where 字段名 like '%关键字%' LIMIT 0,1000;
排序行 select * from 表名 ORDER BY 字段名;
排序行(降序) select * from 表名 ORDER BY 字段名 DESC;
返回空表 SELECT * FROM 表名 LIMIT 0
修改记录 update 表名 set 更改值 where 条件;
修改记录 update 表 set 字段c='512021'+right(字段c,len(字段c)-len('513921')) where left(字段c,len('513921'))='513921'
修改记录 update 表 set 字段c=repalce(字段c,'513921','512021')
删除记录 delete from 表名 where 条件;
创建数据库 create database 库名
创建表 create table 表名 ( 字段名 字段类型(字段长度) PRIMARY KEY AUTO_INCREMENT,,,,);
内存中创建表 CREATE TEMPORARY TABLE 表名 SELECT * FROM 源表 WHERE 条件;
复制表 CREATE TABLE 表名 SELECT * from 源表;
复制表结构 create table 表名2 like 表名1;
删除表 drop TABLE IF EXISTS table 表名;
清空表 delete from 表名
清空表 TRUNCATE TABLE 表名
创建索引 CREATE INDEX 索引名 ON 表名 (列名(10));
删除索引 DROP INDEX 索引名 ON 表名
看清一张表有什么索引 SHOW INDEX FROM ptmp2
列的最大值 select MAX(字段名) AS 字段名的最大值 FROM 表名
列的最小值 select MIN(字段名) AS 字段名的最小值 FROM 表名
列的总和 select SUM(字段名) AS 字段名的总和 FROM 表名
列的平均 select AVG(字段名) AS 字段名的平均 FROM 表名
返回表的总行数 SELECT COUNT(*) FROM 表名;
精确查找 select * from 表名 where 字段名=' 要查找的内容 ';
查找某字段 select * from 表 order by 字段
去除重复后输出记录 select DISTINCT 字段名 FROM 表名;
修改密码 UPDATE user SET Password=PASSWORD('密码') WHERE user='用户名';
增加新用户 grant select on 数据库.* to 用户名@登录主机 identified by "密码"
备份数据库 mysqldump --opt 原库名>备份库名
delete * from 表 where 编号 not in (select min(编号) from 表 group by 电话);删除重复项
SELECT * INTO OUTFILE 'file_name' FROM 表名 做有选择的备份并且用LOAD DATA INFILE 'file_name' REPLACE ...恢复。为了避免重复记录,在表中你需要一个PRIMARY KEY或UNIQUE键。当在唯一键值上一个新记录与一个老记录重复时,REPLACE关键词使得老记录用一个新记录替代。
LOAD DATA INFILE "C://tmp//skr.txt" INTO TABLE skr;
SELECT * FROM skr INTO OUTFILE 'C:/tmp/skr.txt';
回收表闲置的空间
OPTIMIZE TABLE 表名
返回当前的数据库名字 select DATABASE();
返回当前MySQL用户名 select USER();
返回当前MySQL用户名 select substring_index(USER(),"@",1);
MySQL服务器版本 select VERSION();
清空主机缓存表 FLUSH HOSTS
整理查询缓存,以更好的利用它的内存。这个命令不会从缓存中移除任何查询 FLUSH QUERY CACHE
转储清除查询缓存 FLUSH TABLES
从查询缓存中移除所有的查询结果 RESET QUERY CACHE
监视查询缓存的性能 SHOW STATUS
关闭并且再打开标准和更新记录文件 FLUSH LOGS
从mysql数据库授权表中重新装载权限 FLUSH PRIVILEGES
关闭所有打开的表 FLUSH TABLES
重置大多数状态变量到0 FLUSH STATUS
察看线程 SHOW PROCESSLIST
杀死线程 KILL ID
返回当前的数据库名字 select DATABASE();
返回当前MySQL用户名 select USER();
返回当前MySQL用户名 select substring_index(USER(),"@",1);
MySQL服务器版本 select VERSION();
清空主机缓存表 FLUSH HOSTS
整理查询缓存,以更好的利用它的内存。这个命令不会从缓存中移除任何查询 FLUSH QUERY CACHE
转储清除查询缓存 FLUSH TABLES
从查询缓存中移除所有的查询结果 RESET QUERY CACHE
监视查询缓存的性能 SHOW STATUS
关闭并且再打开标准和更新记录文件 FLUSH LOGS
从mysql数据库授权表中重新装载权限 FLUSH PRIVILEGES
关闭所有打开的表 FLUSH TABLES
重置大多数状态变量到0 FLUSH STATUS
察看线程 SHOW PROCESSLIST
杀死线程 KILL ID