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常用命令和语句的更多相关文章

  1. MySQL常用命令与语句

    目录 Shell命令 查看系统信息 查看系统变量 设置系统变量 数据库操作 查看表信息 修改表语句 操作表 操作索引 操作约束 操作列 查询常用语句 Shell命令 mysql -uroot -p12 ...

  2. 【mysql】工作中mysql常用命令及语句

    1.查看mysql版本号 MySQL [release_test_oa]> select version(); +------------+ | version() | +----------- ...

  3. MYSQL常用命令集合(转载)

    文章出处:http://www.cnblogs.com/q1ng/p/4474501.html 1.导出整个数据库mysqldump -u 用户名 -p --default-character-set ...

  4. MYSQL常用命令集合

    1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqld ...

  5. MySQL 常用命令大全

    Mysql常用命令行大全 第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键 ...

  6. linux 下 mysql 常用命令

    linux 下 mysql 常用命令   阅读目录 ====================== 1.开启和关闭 1.1.开启 1.2.关闭 1.3.重启 2.登录 2.1.密码明文 2.2.密码密文 ...

  7. Mysql常用命令 详细整理版

    Mysql常用命令 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop database na ...

  8. MySql常用命令集Mysql常用命令2

    MYSQL 常用命令 1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的 文件名(数据库默认编码是la ...

  9. MySql常用命令集Mysql常用命令3

    MYSQL常用命令 有很多朋友虽然安装好了mysql但却不知如何使用它.在这篇文章中我们就从连接 MYSQL.修改密码.增加用户等方面来学习一些MYSQL的常用命令. 有很多朋友虽然安装好了mysql ...

随机推荐

  1. android 怎么实现跑马灯效果

    自定义控件 FocusedTextView, 使android系统误以为它拥有焦点 public class FocusedTextView extends TextView { public Foc ...

  2. 开发板启动时,内核打印出"can't access tty,job control turned off"

    启动后的最后一行提示can't access tty,job control turned off, 这说明没有进入到控制台,原因就在于文件系统的/etc/inittab 这个文件里有问题 vi /e ...

  3. 【原】Cache Buffer Chain 第四篇

    作者:david_zhang@sh [转载时请以超链接形式标明文章] 链接:http://www.cnblogs.com/david-zhang-index/p/3873357.html [测试1]低 ...

  4. 量子隐形传态1 Quantum Teleportation

    量子隐形传态是量子纠缠的又一个应用. 隐形传态,所谓隐形的意思就是没有物质介质就传递了信息,在经典世界,传递信息要有介质,光.电磁波或者其他的什么,但是在量子的世界里,我可以把信息传递给你,并且不传递 ...

  5. ORBslam总结

    ORBSLAM的优缺点:优点:回环检测做得好,基本上只要见到过的场景都能找回来.采用一种更鲁棒的关键帧和三维点的选择机制——先用宽松的判断条件尽可能及时地加入新的关键帧和三维点, 以保证后续帧的鲁棒跟 ...

  6. xml的的特殊字符转义&

    &amp   ampersand   连接符   & &quot   quotation     双引号    “ &apos  apostrophe   单引号   ...

  7. msql 初识数据库

    一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中, 毫无疑问, 一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题, 并且假设程序所有 ...

  8. python 网络编程(网络基础之网络协议篇)

    前言 C/S  B/S 架构 client<----->server browser<--->server 学习socket编程就是要编写一个客户端软件和服务端软件,然后实现服 ...

  9. 洛谷 - P3033 - 牛的障碍Cow Steeplechase - 二分图最大独立集

    https://www.luogu.org/fe/problem/P3033 二分图最大独立集 注意输入的时候控制x1,y1,x2,y2的相对大小. #include<bits/stdc++.h ...

  10. python 的 数据类型

    数据类型 1.1整型int py2中有int有范围,超出自动转为long长整型,py3中只有int 整除py2中无小数,可加一行代码实现 十进制转二进制 print(bin(10))十进制转八进制 p ...