首页 > 数据库 >MySQL常用管理命令、常用函数小计

MySQL常用管理命令、常用函数小计

时间:2024-04-18 20:23:50浏览次数:29  
标签:salary 常用 GROUP string ## 小计 MySQL id SELECT

1、Windows系统是MySQL服务器的关闭、重启 ( mysql为服务名 )

  关闭服务:net stop mysql

  启动服务:net start mysql 

2、连接mysql服务器

  在cmd窗口执行命令:mysql -h 127.0.0.1 -P 3306 -u root -p 

  -h 127.0.0.1 :指定主机IP 

   -P 3306:执行mysql服务端口

  -u root:指定需要连接的用户

  -p:指定登录密码(假设为root),可直接无空格方式写在-p命令后(-proot),也可回车后,根据系统提示,密文输入

3、常用管理维护命令

  mysql命令行方式查看当前数据库版本:select version();

  查看当前所在的数据库:select database();

  查看当前数据库用户:select user();

  cmd方式查看当前数据库版本:mysql --version  或者  mysql -V

  显示所有数据库:show databases;

  进入test库:use test;

  显示当前库表:show tables;

  显示指定数据库mysql内的表:show tables from mysql;

  显示info表的结构:desc info;

4、MySQL语法规范

  (1)不区分大小写,建议关键字大写,表名、列名小写

  (2)每条命令建议分号结尾

  (3)命令根据需要缩进、换行

  (4)单行注释:#注释文字

      单行注释:--注释文字

      多行注释:/* 数值文字 */

5、DQL语句

 ##查询员工表中的name字段(因为name也是mysql的关键字,为表述清晰,可在字段上加着重符 ` ,不是单引号,是TAB键上边的按键。)

  SELECT `name` FROM employees;

 ##MySQL中的+号只有运算符的功能,不能做连接符

  SELECT 1+1  ##正常加法,输出2

  SELECT ‘1’+1  ##尝试将字符1转换为数值型成功,执行加法,输出2

  SELECT ‘mysql’+1   ##尝试将字符mysql转换为数值型失败,将其转为0,执行加法,输出1

  SELECT null+1  ##只要一方为null,结果为null

 ##在mysql中使用 CONCAT() 函数进行字段结果的连接

  SELECT CONCAT(lastname,firstname) as name FROM employees;

  SELECT CONCAT(lastname,‘+’,firstname) as name FROM employees;  #字段间使用+号拼接

  注意:字段中存在null值时,拼接结果将为null,可使用 IFNULL(lastname,"") 函数将null转换为空字符串。

     另有isNull()函数,判断字段是否为null,为null返回1,不为null,返回0。

 ##通配符转义

  SELECT last_name FROM employees WHERE last_name LIKE '_\_yhon';  #使用默认转义字符 \ 转义通配符 _

  SELECT last_name FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';  #指定转义字符 $ 转义通配符 _

5、MySQL函数

5.1、单行函数

5.1.1、字符函数

  LENGTH(string) :获取字符串string的字节数

  CONCAT(str1,str2) :拼接字符串

  UPPER(string) :变大写

  LOWER(string):变小写

  DUBSTR(string,n):截取string字符串从指定索引n处到后面的所有字符,默认下边从1开始,包含起始位置字符

  DUBSTR(string,n,m):截取string字符串中从指定索引n处到开始到后面共m位字符

  INSTR(string1,string2):返回string2在string1中第一次出现的索引,无则返回0

  TRIM(string) :去掉string字符串两端的空格

  TRIM('m' FROM string):去掉字符串两端的指定m字符串

  LPAD(string,n,m):用指定字符m实现对string字符串左填充到指定长度n (string长度超过n)将会被从后面截取

  RPAD(string,n,m):用指定字符m实现对string字符串左填充到指定长度

  REPLACE(string,str1,str2):用子串str2去替换string中所有的str1子串

5.1.2、数学函数

  ROUND(num):对num进行四舍五入

  ROUND(num,n):对num小数点后保留n位四舍五入

  CELL(num):向上取整,返回大于等于该参数的最小整数

  FLOOR(num):向下取整,返回小于等于该参数的最大整数

  TRUNCATE(num,n):截取函数,对于num小数点后保留n位

  MOD(a,b):取余函数,结果正负取决于被除数的正负,运算原理:a % b == a - a / b * b

5.1.3、日期时间

  NOW() :返回系统当前日期+时间,格式:YYYY-MM-DD HH:mm:ss

  CURDATE():返回当前系统日期,格式:YYYY-MM-DD

  CURTIME():返回当前系统时间,格式:HH:mm:ss

  MONTH(NOW()):返回当前月

  MONTHNAME(NOW()):返回当前月的英文  ##年、日、小时、分钟、秒等类似

  DATADIFF(time1,time2) :返回time1和time2相差的天数

  STR_TO_DATE('9-13-1999','%m-%d-%Y'):将日期格式的字符串转换成指定格式的日期,输出 1999-09-13

  DATE_FORMATE('2018/6/6','%Y年%m月%d日'):将日期字符串转换成字符,输出 2018年06月06日

  ##常用格式符说明

  %Y:四位的年份  %y:两位的年份 

  %c:固定两位的月份(01,02...11,12)  %m:非固定格式的月份(1,2,3...11,12)

  %d:日(01,02,03...)

  %H:小时(24小时制)  %h:小时(12小时制)

  %i:分钟(00,01,02...59)

  %s:秒(00,01,02...59)

5.1.4、流程控制函数

  ## IF函数:IF(expr1,expr2,expr3)

  SELECT name,commission_pct,IF(commission_pct IS NULL,'没奖金','有奖金');

  ## CASE函数(1、单数值匹配) :CASE expr1 WHEN c1 THEN expr2;WHEN c2 THEN expr3;......ELSE expr4;

  SELECT name,salary,department_id,

  CASE department_id

  WHEN 10 THEN salary*1.1

  WHEN 20 THEN salary*1.2

  WHEN 30 THEN salary*1.3

  ELSE salary

  END AS new_salary

  FROM employees;

  ## CASE函数(2、区间值匹配) :CASE  WHEN expr1 THEN res1 ;WHEN expr2 THEN res2;......ELSE expr3 END;

  SELECT salary,

  CASE 

  WHEN salary>2000 THEN 'A'

  WHEN salary>1500 THEN 'B'

  WHEN salary>1000 THEN 'C'

  ELSE 'D'

  END AS salary_class

  FROM employees;

5.2、分组函数(聚合函数、统计函数、组函数)

5.2.1、简单分组函数

  ## 求和函数 SUM(c1),求平均 AVG(c1),求最大 MAX(c1),求最小 MIN(c1),求个数 COUNT(c1)

  SELECT SUM(salary), AVG(salary), MAX(salary), MIN(salary), COUNT(salary) FROM employees;

   说明:SUM/AVG一般计算数值型数据;MAX/MIN/COUNT可用于任何字段;

  SUM/AVG/MAX/MIN/COUNT均会忽略NULL值;

  以上分组函数可以和DISTINCT()函数配合使用,达到去重的效果:

  SELECT SUM(DISTINCT salary),SUM(salary) FROM employees;

  和分组函数一同查询的字段要求是group by后的字段。

  ##COUNT(*) 和 COUNT(1)

  都是用来统计数据表的总记录数,COUNT(1)相当于对表扩展了一列(1),去统计该列的行数;

  MYISAM引擎下,COUNT(*) 效率高;INNODB引擎下,两者差不多。

5.2.2、分组查询

  ## GROUP BY 语句,查询的列表要求是分组函数和GROUP BY后出现的字段,同时MySQL的GROUP BY 和HAVING语句后支持别名,Oracle不支持。

  ## 简单 GROUP BY语句

  SELECT MAX(salary),job_id FROM employees GROUP BY job_id;

  ## 添加分组前筛选条件的 GROUP BY 语句(针对原始表的数据源,在GROUP BY 前,使用WHERE)

  SELECT MAX(salary),job_id FROM employees WHERE email LIKE '%a%' GROUP BY job_id;

  ##添加分组后筛选条件的 GROUP BY 语句(针对分组后的结果集,在GROUP BY 后,使用HAVING)

  SELECT COUNT(*),department_id FROM employees GROUP BY department_id HAVING COUNT(*)>2;

  ##分组前、后均有筛选条件的 GROUP BY 语句

  SELECT COUNT(*),department_id FROM employees WHERE  email LIKE '%a%'  GROUP BY department_id HAVING COUNT(*)>2;

  ##按多个字段进行 GROUP BY分组

  SELECT AVG(salary),department_id,job_id FROM employees GROUP BY job_id,department_id;

  ##带有排序的 GROUP BY 语句

  SELECT AVG(salary),department_id,job_id FROM employees GROUP BY job_id,department_id ORDER BY AVG(salary) DESC;

  ##使用表达式或者函数分组(GROPU / HAVING 后支持别名,oracle不支持)

  SELECT COUNT(*) FROM employee GROUP BY LENGTH(last_name);

标签:salary,常用,GROUP,string,##,小计,MySQL,id,SELECT
From: https://www.cnblogs.com/DeepInThought/p/10744591.html

相关文章

  • MySQL-8.0.33-winx64 解压版安装 [Windows]
    1、下载安装包mysql-8.0.33-winx64.ziphttps://dev.mysql.com/downloads/file/?id=5182202、安装解压mysql-8.0.33-winx64.zip(至:C:\app\mysql-8.0.33-winx64);创建my.ini文件;默认解压目录无my.ini文件,需自己创建;进入目录C:\app\mysql-8.0.33-winx64,创建my.ini,文件内容......
  • Mac 使用 brew 安装 mysql
    ##搜索可用版本brewsearchmysql##安装制定版本[email protected]##重点需要关注的安装日志如下==>[email protected]==>[email protected]_1.sonoma.bottle.tar.gz==>/usr/local/Cellar/[email protected]/8.0.36_1/bin/mysqld--initialize-insecure-......
  • 云原生之在kubernetes集群下部署mysql应用
    一、Mysql介绍数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。MySQL是一种开源的关系型数据库管理系统,可将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内,从而加快了访问速度并提高了灵活性。MySQL使用了标准的SQL语言形式。支持大型的数据库,可以处理......
  • MySQL里 没有 boolean类型 怎么办?MySQL 里的 tinyint(1)
    之前我写的博客:https://www.cnblogs.com/del88/p/12538470.html由于之前的博客,没有使用markdown懒得重新排版了,重新写一篇;直接看AI给的答案吧:MySQL里没有boolean类型怎么办?在MySQL中,确实没有专门的boolean数据类型。不过,MySQL通常使用TINYINT(1)作为布尔值的替代。当使用T......
  • MYSQL 8 窗口函数的优点
    窗口函数的特点是可以分组,而且可以在分组内排序。另外,窗口函数不会因为分组而减少原表中的行数I这对我们在原表数据的基础上进行统计和排序非常有用。递归调用 复杂报表统计能力增强:窗口函数允许在数据集(窗口)内进行行级别的运算,而不会像传统聚合函数那样折叠所有行到单个输......
  • java-mysql-语法
    条件查询1.条件运算符:>,<,=,!=,<>2.按逻辑表达式:&&,||,!and,or,not &&和and:两个条件都为true.结果为true,反之为false ||和or:只要有一个条件为true,结果就为true,反之为false !和not:如果连接的条件本身就为false,结果为......
  • liunx常用操作
    1.linux配置当用户连续认证失败次数超过5次,锁定该用户使用的账号more/etc/pam.d/system-authauthrequiredpam_tally.soonerr=faildeny=5unlock_time=3002.查询服务器版本cat/etc/os-release3.查询服务器端口netstat-pltun4.安装tcppingcdusr/binwgetht......
  • Alibaba Cloud Linux 3.2104 LTS 安装mysql5.7.39
    1上传mysql安装包到linux服务器tar-zxvfmysql-5.7.39-linux-glibc2.12-x86_64.tar.gzmvmysql-5.7.39-linux-glibc2.12-x86_64mysql5.72创建mysql用户groupaddmysqluseradd-gmysql-s/sbin/nologinmysqlchown-Rmysql:mysqlmysql5.7 ......
  • linux常用的shell脚本
    linux常用的shell脚本一、检查系统负载:检查系统的负载情况,并在超过阈值时发送警报。可使用 uptime 命令和条件语句来实现#!/bin/bashCPU_USAGE=$(top-bn1|grep"Cpu(s)"|awk'{print$2+$4}')THRESHOLD=80THRESHOLD=80if(($(echo"$CPU_USAGE>$THRESHOLD"|b......
  • Ubuntu部署有道QAnything(中间涉及到更换mysql容器端口)
    1、系统配置版本:Ubuntu20.04有两块3090的显卡2、下载相关文件首先下载源码,下载完成后解压得到QAnything-master文件夹github下载地址:https://github.com/netease-youdao/qanythinggitee下载地址:https://gitee.com/netease-youdao/QAnything?_from=gitee_search下载embed......