MySQL常用命令和语句
1、常用SQL语句
1)常用函数
/*
type可取值为:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
*/
/*以unix时间戳形式返回当前时间*/
select unix_timestamp();
/*以unix时间戳形式返回当前时间*/
select unix_timestamp(now());
/*将 以unix时间戳形式返回当前时间 转换为 普通日期时间*/
select from_unixtime(unix_timestamp(now()));
/*返回日期与0年1月1日之间的天数*/
select TO_DAYS(now());
/*返回在0年1月1日之后n天的日期*/
select FROM_DAYS(1000);
/*返回指定格式的日期时间字符串*/
select str_to_date('2013-09-15 09:00:00', '%Y-%m-%d %H:%i:%S');
/*返回UTC日期 2016-08-23*/
SELECT UTC_DATE();
/*返回UTC时间 17:55:19*/
select UTC_TIME();
/*返回日期对应的时间数字 64519*/
select TIME_TO_SEC(UTC_TIME());
select TIME_TO_SEC(CURTIME());
select TIME_TO_SEC(CURRENT_TIME);
/*返回时间数字对应的时间 01:55:19 AM 01:55:19 AM*/
select TIME_FORMAT(UTC_TIME(),'%r');
select TIME_FORMAT(CURTIME(),'%r');
select TIME_FORMAT(CURRENT_TIME,'%r');
/*返回时间 01:00:00*/
select SEC_TO_TIME(3600);
/*返回时间 838:59:59*/
select SEC_TO_TIME(UNIX_TIMESTAMP());
select SEC_TO_TIME(UNIX_TIMESTAMP(now()));
/*返回时间 17:57:26*/
select SEC_TO_TIME(TIME_TO_SEC(UTC_TIME()));
select SEC_TO_TIME(TIME_TO_SEC(CURTIME()));
select SEC_TO_TIME(TIME_TO_SEC(CURRENT_TIME));
/*返回指定日期加1天后的日期时间 2016-08-25 01:58:37*/
select ADDDATE(now(),1);
/*返回指定日期加1秒后的日期时间 2016-08-24 01:58:38*/
select ADDDATE(CURRENT_TIMESTAMP(),INTERVAL 1 second);
/*返回指定日期加1分钟的日期时间 2016-08-24 01:59:37*/
select DATE_ADD(LOCALTIME(),INTERVAL 1 minute);
/*返回指定日期减1天后的日期时间 2016-08-23 01:58:37*/
select SUBDATE(SYSDATE(),INTERVAL 1 day);
/*返回指定时间加5秒后的日期时间 01:58:42*/
select ADDTIME(CURTIME(),5);
/*返回指定时间减10秒后的日期时间 01:58:27*/
select SUBTIME(CURRENT_TIME,10);
/*返回指定2个日期时间相差的天数 11*/
select DATEDIFF(current_date()+1,current_date()-10);
/*返回指定格式的日期时间 2016-08-24 01:58:37*/
select DATE_FORMAT(LOCALTIMESTAMP(),'%Y-%m-%d %H:%i:%S');
/*返回字符串中字符的个数*/
SELECT CHAR_LENGTH('mysql数据函数');
/*返回字符串中字节的个数*/
SELECT LENGTH('mysql数据函数');
返回第1个参数字符串在第2个参数字符串中的位置 3
SELECT LOCATE('sq','mysql');
返回第1个参数字符串在第2个参数字符串中的位置 3
SELECT POSITION('s' IN 'mysql');
返回第2个参数字符串在第1个参数字符串中的位置 3
SELECT INSTR('mysql','sq');
返回与第1个参数的字符串匹配的位置
SELECT FIELD('my','mql','ysql','my','mysql','my');
返回以指定第3个参数替换第2个参数后的字符串 mysql数据语句
SELECT REPLACE('mysql数据函数','函数','语句');
返回从第2个参数指定的值开始截取指定第3个参数长度的字符串 ql数据函
SELECT SUBSTRING('mysql数据函数',4,5);
返回从第2个参数指定的值开始截取指定第3个参数长度的字符串 sq
SELECT MID('mysql数据函数',3,2);
返回指定间隔符出现的位置左边或右边的字符串,第3个参数为整数,则为左边,否则为右边
SELECT SUBSTRING_INDEX('my@sql@数@据函数@命令','@',4);
/*返回相连接的2个字符串*/
SELECT CONCAT('mysql','数据函数');
/*返回以@符号连接2个字符串*/
SELECT CONCAT_WS('@','mysql','数据函数');
SELECT INSERT('mysql数据函数',1,4,'非常实用的');
/*从左边开始返回2个长度的字符串*/
SELECT LEFT('mysql数据函数',2);
/*从右边开始返回2个长度的字符串*/
SELECT RIGHT('mysql数据函数',2);
/*返回以第3个参数从左边开始填充后的字符串,长度为10 好mysql数据函数/*
SELECT LPAD('mysql数据函数',10,'好的');
/*返回以第3个参数从左右边开始填充后的字符串,长度为10 mysql数据函数好/*
SELECT RPAD('mysql数据函数',10,'好的');
/*返回翻转字符串后的字符串 数函据数lqsym/*
SELECT REVERSE('mysql数据函数');
/*返回指定位置的字符串 数据/*
SELECT ELT(2,'mysql','数据','函数');
/*返回字符串比较后的数字 -1 不等 0 相等/*
select STRCMP('mysql数据函数','mysql数据函数');
/*返回指定重复次数的字符串 mysql数据函数mysql数据函数mysql数据函数/*
SELECT REPEAT('mysql数据函数',3);
/*返回100次空格/*
SELECT SPACE(100);
/*将IP地址转换为数字 2130706433*/
select INET_ATON('127.0.0.1');
/*将数字转换为IP地址 127.0.0.1*/
select INET_NTOA(INET_ATON('127.0.0.1'));
/*返回第1个字符的ascii码*/
select ASCII('myql');
/*返回数字的2进制*/
select BIN(10);
/*返回数字的8进制*/
select HEX(10);
/*返回数字的16进制*/
select OCT(10);
/*返回将数字p1,从p2进制转换为p3进制*/
select CONV(10,10,2);
/*数字保留2位小数*/
select FORMAT(1949001,2);
/*对字符串进行encode编码 编码密码为 encode*/
select ENCODE('123456','encode');
/*对字符串进行dencode编码 解码密码为 encode*/
select DECODE('123456','encode');
/*返回字符串的md5码 dad661767e9d552e4b689cd98536b8f7*/
select MD5(user());
/*返回加密字符串后的编码 *3F81B1F810FF5EFEF95211C8034BF1F0C1EAB7A8*/
select PASSWORD(user());
/*函数适用于:BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER*/
/*将指定字段转换为date类型*/
select CAST(now() AS date);
/*将指定字段转换为date类型*/
select CONVERT(now(),date);
/*指定数据库的字符集*/
select CONVERT('数据库' USING utf8mb4);
/*返回 指定运行now() 100次数后的时间*/
select BENCHMARK(100,now());
/*查看当前数据库的字符集*/
select CHARSET(CONVERT('数据库' USING utf8mb4));
/*返回数据的版本 版本号 5.5.38-log 24*/
select version(),CONNECTION_ID();
/*返回当前使用的数据库名称 mysql*/
select DATABASE()、SCHEMA();
/*返回当前使用的数据库用户 root@ip root@ip root@ip root@% root@% */
select USER(),SYSTEM_USER(),SESSION_USER(),CURRENT_USER(),CURRENT_USER;
/*返回当前使用的数据库使用的字符集 排序方式 自增长ID值 utf8mb4 utf8mb4_general_ci 1*/
select CHARSET('数据库'),COLLATION('数据库'),LAST_INSERT_ID();
/*参数1为真,返回参数1的值,否则返回参数2的值*/
select if(2=1,'成立','不成立');
/*参数1不为null,返回参数1的值,否则返回参数2的值*/
select ifnull('非空','空');
/*创建表并插入数据*/
create table person(
id smallint(5) unsigned auto_increment primary key not null comment '主键id',
name varchar(50) not null comment '用户名',
sex tinyint(2) not null comment '性别',/*1 男 2 女 3 未知*/
age tinyint(2) not null comment '年龄',
phone varchar(11) comment '手机号',
address varchar(128) comment '当前住址',
statusinfo varchar(128) comment '各种状态简述:婚姻 收入 职业 信仰 兴趣爱好 信用状况 资产状况等',
describes varchar(1024) comment '当前所处的状况描述'
)ENGINE=innodb default charset=utf8;
insert into person(name,sex,age,phone,address,statusinfo,describes)
values(1,'地**',1,32,'150****9871','某市某区某大厦某东某室','未婚,***万/月,技术工程师,无,购物,良好,有房贷无车贷,有***万存款,***万投资'),
(2,'地**',1,32,'150****9871','某市某区某大厦某东某室','未婚,***万/月,技术工程师,无,购物,良好,有房贷无车贷,有***万存款,***万投资');
commit;
/*修改列名和列类型*/
alter table person change address personaddress varchar(128) default '无';
alter table person modify statusinfo varchar(256) default '各种状态简述;无';
/*创建主键索引*/
alter table person add primary key(id);
/*创建普通索引*/
create index idx_phone_00 on person(phone);
alter table person add index idx_phone_01(phone);
/*创建唯一索引*/
create unique index idx_phone_02 on person(phone);
alter table person add unique index idx_phone_03(phone);
/*查询表所有中索引*/
show index from person;
/*删除指定索引*/
drop index idx_phone_00 on person;
2)常用数据库操作命令
1)查看数据库支持的存储引擎
show engines;
2)查看数据库当前的存储引擎
show variables like '%storage_engine%';
3)查看数据库是否支持分区
show plugins;
4)列出所有数据库
show databases;
5)切换数据库
use 数据库名;
6)列出所有表
show tables;
7)显示表结构
describe 表名;
8)查看创建表的sql语句
show create table comment\G;
9)查看存储过程简单信息
show create procedure p1;
10)查看存储过程详细信息
select * from mysql.proc where db='mysql';
show procedure status where db='mysql';
11)删除数据库
drop database 数据库名;
12)删除表
drop table 表名;
13)获取所有表名并删除所有表
select concat('drop table',table_name,';') from information_schema.`tables` where table_schema='数据库名';
14)显示数据库的编码
show character set;
要更改数据库的编码,character set、collation 2个字段的值都要修改
alter database mysql character set utf8 collate utf8_general_ci;
15)修改表名和列名
修改表名
alter table user rename t_user;
添加一列
alter table t_user add address varchar(100);
删除一列
alter table t_user drop column address;
修改列数据类型
alter table t_user modify address varchar(300);
修改列名
alter table t_user chanage column address addr varchar(200);
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
collation-server=utf8-unicode_ci
init-connect='SET NAMES utf8'
character-set-server=utf8
查看编码信息
show variables like 'character_set%';
16)用户及权限管理
#创建用户并授权
#允许本地访问
create user 'mike'@'localhost' identified by '123456';
#允许外网访问
create user 'mike'@'%' identified by '123456';
#刷新权限
flush privileges;
#grant 权限 on 数据库.* to '用户名'@'登录主机' identified by '密码';
#原始密码为:123456 加密后的密码为:*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
grant all privileges on *.* to 'root'@'%' identified by password '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' with grant option;
所有主机:%,指定主机:ip地址或域名,通配符:*,某一个网段:192.168.1.0/255.255.225.0
#用户通过本地IP访问数据库
grant all privileges on `testdb`.* to 'mike'@'localhost' identified by '123456';
#用户通过外网IP访问数据库
grant all privileges on `testdb`.* to 'mike'@'%' identified by '123456';
#刷新权限
flush privileges;
#删除用户
delete from user where User='用户名' and Host='localhost';
flush privileges;
#删除用户及权限
drop user '用户名'@'localhost';
drop user '用户名'@'%';
#修改用户密码
use mysql;
update mysql.user set password=password('新密码') where User='用户名' and Host='localhost';
flush privileges;
修改当前用户密码
set password=password('新密码');
修改指定用户密码
set password for 用户名=password('新密码');
17)其他操作命令
#mariadb启动和停止命令
systemctl stop mariadb.service
systemctl start mariadb.service
#显示系统变量
mysqladmin variables -u username -p password \G;
#显示状态变量
mysqladmin extented-status -u username -p password \G;
#查看SQL的执行情况,是否有死锁、执行状态等
show full processlist ;
18)开启profiling的步骤
#查看profiling是否开启
show variables like 'profiling%';
#开启profiling
set profiling=1;
#显示profiling
show profiles \G;
#获取执行了SQL语句的id
show profile for query query_id
#关闭profiling
set profiling=0
MySQL常用命令和语句的更多相关文章
- MySQL常用命令与语句
目录 Shell命令 查看系统信息 查看系统变量 设置系统变量 数据库操作 查看表信息 修改表语句 操作表 操作索引 操作约束 操作列 查询常用语句 Shell命令 mysql -uroot -p12 ...
- 【mysql】工作中mysql常用命令及语句
1.查看mysql版本号 MySQL [release_test_oa]> select version(); +------------+ | version() | +----------- ...
- MYSQL常用命令集合(转载)
文章出处:http://www.cnblogs.com/q1ng/p/4474501.html 1.导出整个数据库mysqldump -u 用户名 -p --default-character-set ...
- MYSQL常用命令集合
1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqld ...
- MySQL 常用命令大全
Mysql常用命令行大全 第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键 ...
- linux 下 mysql 常用命令
linux 下 mysql 常用命令 阅读目录 ====================== 1.开启和关闭 1.1.开启 1.2.关闭 1.3.重启 2.登录 2.1.密码明文 2.2.密码密文 ...
- Mysql常用命令 详细整理版
Mysql常用命令 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop database na ...
- MySql常用命令集Mysql常用命令2
MYSQL 常用命令 1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的 文件名(数据库默认编码是la ...
- MySql常用命令集Mysql常用命令3
MYSQL常用命令 有很多朋友虽然安装好了mysql但却不知如何使用它.在这篇文章中我们就从连接 MYSQL.修改密码.增加用户等方面来学习一些MYSQL的常用命令. 有很多朋友虽然安装好了mysql ...
随机推荐
- Linux下的RTC子系统
转自:http://blog.csdn.net/weiqing1981127/article/details/8484268 实时时钟的作用主要是为操作系统提供一个可靠的时间,并在断电下,RTC时钟也 ...
- PowerDesigner里怎样查找特定的表
转自:https://blog.csdn.net/u013178480/article/details/78261650 crtl+f查找,在code处输入你要查找的表名,然后点击“find now& ...
- Bishops
题意: 给定一个 $n*n$ 的国际棋盘,求问在上面放 $K$ 个象的方案数. 解法: 首先可以发现黑格和白格互不干扰,这样我们可以将黑格,白格分别求出. 考虑 $f(i,j)$ 表示坐标化后考虑长度 ...
- JDK1.8中对hashmap的优化
在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外.HashMap实际上是一个“链表散列”的数据结 ...
- 4-1数据类型转换的基本概念 & 4-2 & 4-3数据类型转换案例 & 4-4习题
4-1数据类型转换的基本概念 253是int类型的,赋值给长整型的n 这种就是强制的类型转换 自动类型转换又叫做饮食类型转换,因为他的转换我们是看不到的 实线表示无数据丢失的 虚线在转换时, doub ...
- windows ping得通,连接不上网
这是被电脑安装的软件拦截的现象,我们只需要使用. netsh winsock reset 重启电脑即可
- T^TOJ - 2360 - Home_W的超级数学题 - 莫比乌斯反演 - 质因数分解
求单个莫比乌斯函数忘记算n本身的质数,WA了一发. http://www.fjutacm.com/Problem.jsp?pid=2360 首先,显然随着n增大,与m互质的数不会变少.可以二分来求k, ...
- 51nod1414【思维】
思路: 直接可以枚举1-n,如果枚举到是n的约数i,那么暴力枚举起点,其余点用i累加就一定是正多边形.复杂度是(n*n的公约数个数(最多80)): const int N=2e4+10; int a[ ...
- Android 跨应用调用Activity
http://blog.csdn.net/ouyangliping/article/details/7972141 如何调用另外一个app应用的activity或者service,本文提供一个验证可行 ...
- 聪明的质监员(codevs 1138)
题目描述 Description 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n 个矿石,从1到n 逐一编号,每个矿石都有自己的重量wi 以及价值vi.检验矿产的流程是:见图 ...