表关联关系:

-- 内联接
SELECT * FROM m INNER JOIN n ON m.id = n.id;
-- 左外联接
SELECT * FROM m LEFT JOIN n ON m.id = n.id;
-- 右外联接
SELECT * FROM m RIGHT JOIN n ON m.id = n.id;
-- 交叉联接(基本禁止写法,除非特殊情况)
SELECT * FROM m CROSS JOIN n; -- 标准写法
SELECT * FROM m, n;
-- 要求UNION ALL 上下ssql字段要一致,将上下sql的记录拼在一起。
-- union 会过滤重复记录,union all 不会过滤。
SELECT id,name FROM m
UNION ALL
SELECT id,name FROM n;

常用函数:

-- 聚合函数(字段取别名可以省略 AS)
SELECT count(1) AS counts FROM XXX; -- 查询记录条数
SELECT sum(age) AS sumAge FROM XXX; -- 总和(全部记录age字段的和)
SELECT avg(age) AS avgAge FROM XXX; -- 平均值(全部记录age字段的平均值)
SELECT max(age) AS maxAge FROM XXX; -- 最大值(全部记录age字段的最大值)
SELECT min(age) AS minAge FROM XXX; -- 最小值(全部记录age字段的最小值)
-- 实际聚合函数使用场景(按照“字段” 分组,聚合函数可以按照分组聚合),having 可以增加条件去掉不需要的分组。
select count(1) from XXX GROUP BY 字段 HAVING 条件(比如字段=1) -- 数学函数
SELECT abs(-5); -- 绝对值
SELECT bin(15), oct(15), hex(15); -- 二进制,八进制,十六进制
SELECT pi(); -- 圆周率3.141593
SELECT ceil(5.5); -- 大于x的最小整数值6
SELECT floor(5.5); -- 小于x的最大整数值5
SELECT greatest(3,1,4,1,5,9,2,6); -- 返回集合中最大的值9
SELECT least(3,1,4,1,5,9,2,6); -- 返回集合中最小的值1
SELECT mod(5,3); -- 余数2
SELECT rand(); -- 返回0到1内的随机小数,每次不一样
SELECT rand(4); -- 提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。
SELECT round(1415.1415); -- 四舍五入1415
SELECT round(1415.1415, 3); -- 四舍五入三位数1415.142
SELECT round(1415.1415, -1); -- 四舍五入整数位数1420
SELECT truncate(1415.1415, 3); -- 截短为3位小数1415.141
SELECT truncate(1415.1415, -1); -- 截短为-1位小数1410
SELECT sign(-5); -- 符号的值负数-1
SELECT sign(5); -- 符号的值正数1
SELECT sqrt(9); -- 平方根3
-- 字符串函数
SELECT concat('a', 'p', 'p', 'le'); -- 连接字符串-apple
SELECT concat_ws(',', 'a', 'p', 'p', 'le'); -- 连接用','分割字符串-a,p,p,le
SELECT insert('chinese', 3, 2, 'IN'); -- 将字符串'chinese'从3位置开始的2个字符替换为'IN'-chINese
SELECT left('chinese', 4); -- 返回字符串'chinese'左边的4个字符-chin
SELECT right('chinese', 3); -- 返回字符串'chinese'右边的3个字符-ese
SELECT substring('chinese', 3); -- 返回字符串'chinese'第三个字符之后的子字符串-inese
SELECT substring('chinese', -3); -- 返回字符串'chinese'倒数第三个字符之后的子字符串-ese
SELECT substring('chinese', 3, 2); -- 返回字符串'chinese'第三个字符之后的两个字符-in
SELECT trim(' chinese '); -- 切割字符串' chinese '两边的空字符-'chinese'
SELECT ltrim(' chinese '); -- 切割字符串' chinese '两边的空字符-'chinese '
SELECT rtrim(' chinese '); -- 切割字符串' chinese '两边的空字符-' chinese'
SELECT repeat('boy', 3); -- 重复字符'boy'三次-'boyboyboy'
SELECT reverse('chinese'); -- 反向排序-'esenihc'
SELECT length('chinese'); -- 返回字符串的长度-7
SELECT upper('chINese'), lower('chINese'); -- 大写小写 CHINESE chinese
SELECT ucase('chINese'), lcase('chINese'); -- 大写小写 CHINESE chinese
SELECT position('i' IN 'chinese'); -- 返回'i'在'chinese'的第一个位置-3
SELECT position('e' IN 'chinese'); -- 返回'i'在'chinese'的第一个位置-5
SELECT strcmp('abc', 'abd'); -- 比较字符串,第一个参数小于第二个返回负数- -1
SELECT strcmp('abc', 'abb'); -- 比较字符串,第一个参数大于第二个返回正数- 1
-- 时间函数
SELECT current_date, current_time, now(); -- 2018-01-13 12:33:43 2018-01-13 12:33:43
SELECT hour(current_time), minute(current_time), second(current_time); -- 12 31 34
SELECT year(current_date), month(current_date), week(current_date); -- 2018 1 1
SELECT quarter(current_date); --
SELECT monthname(current_date), dayname(current_date); -- January Saturday
SELECT dayofweek(current_date), dayofmonth(current_date), dayofyear(current_date); -- 7 13 13
-- 控制流函数
SELECT if(3>2, 't', 'f'), if(3<2, 't', 'f'); -- t f
SELECT ifnull(NULL, 't'), ifnull(2, 't'); -- t 2
SELECT isnull(1), isnull(1/0); -- 0 1 是null返回1,不是null返回0
SELECT nullif('a', 'a'), nullif('a', 'b'); -- null a 参数相同或成立返回null,不同或不成立则返回第一个参数
SELECT CASE 2
WHEN 1 THEN 'first'
WHEN 2 THEN 'second'
WHEN 3 THEN 'third'
ELSE 'other'
END ; -- second

常用系统表:

-- 查看数据库实例信息,“schema_name”数据库名称条件。
SELECT * from information_schema.`SCHEMATA` where schema_name = 'work_db';
-- 查看数据库表信息,“table_schema”数据库名称条件。
SELECT * from information_schema.`TABLES` where table_schema = 'work_db';
-- 查看数据库表列的信息,“table_schema”数据库名称条件,“table_name”查询表的条件。
SELECT * from information_schema.`COLUMNS` where table_schema = 'work_db' and table_name = 'operator';
-- 查看数据库表索引的信息,“table_schema”数据库名称条件,“table_name”查询表的条件。
SELECT * from information_schema.`STATISTICS` where table_schema = 'work_db' and table_name = 'operator';

其他信息:

-- 系统信息函数
SELECT database(); -- 当前数据库名-test
SELECT connection_id(); -- 当前用户id-306
SELECT user(); -- 当前用户-root@localhost
SELECT version(); -- 当前mysql版本
SELECT found_rows(); -- 返回上次查询的检索行数

参考:https://blog.csdn.net/c361604199/article/details/79479398

《MySQL数据库》常用语法(二)的更多相关文章

  1. MySQl数据库常用的DOS命令

    MySQl数据库常用的DOS命令.. 这是第一部分.. 数据库的连接信息:jdbc:mysql://localhost:3306/shxtcom.mysql.jdbc.Driver /*jdbc:sq ...

  2. MySQL 数据库常用命令小结

    MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...

  3. DBA必备:MySQL数据库常用操作和技巧

    DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...

  4. mysql数据库常用语句

    关于mysql数据库常用命令的整理: 一:对于数据库的操作 show databases;显示当前用户下所有的数据库名称 use database_name;进入当前数据库 create databa ...

  5. Mysql数据库常用的命令 数据备份 恢复 远程

    远程数据库 格式: mysql -h主机地址 -u用户名 -p用户密码数据库 mysql -h 42.51.150.68 -u yang -p discuz mysql设置密码 mysql>us ...

  6. Mysql数据库常用分库和分表方式

    http://blog.csdn.net/clevercode/article/details/50877580 1 分库 1.1 按照功能分库 按照功能进行分库.常见的分成6大库:    1 用户类 ...

  7. java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据

    package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...

  8. 【码上开心】Windows环境mysql数据库使用(二)skip-grant-tables 与用户名密码修改

    skip-grant-tables #跳过数据库权限验证 我们安装MySql 设置my.ini配置文件的时候,常常会在my.ini中添加 skip-grant-tables ,这时接数据库可以使用任意 ...

  9. Mysql数据库常用操作语句大全

    零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...

  10. MySQL数据库常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 不区分大小写 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等 ...

随机推荐

  1. oracle表结构

    表管理 新建表 语法 create table 表名 ( 列名1 类型(长度), 列名2 类型(长度), 列名3 类型(长度) ); create table:关键字,建表 后跟新建表的表名,表名长度 ...

  2. 【笔记】总结Springboot和Vue前后端分离的跨域问题

    跨域一直是个很玄学的问题,SSM的时候又得前后端一起配置,sb的时候又不用. 前端 axios普通get请求 submitForm() { var v=this; this.$axios({ meth ...

  3. 打算写一个《重学Node.js》系列,希望大家多多支持

    先放上链接吧,项目已经开始2周了:https://github.com/hellozhangran/happy-egg-server 想法 现在是2019年11月24日,还有人要开始学习Node.js ...

  4. 使用aop加解密http接口

    背景 最近在写一个小程序接口,由于安全性比较高,因此需要给请求参数和响应进行加密处理.如果在每个方法上都加密解密,那样代码就显得太繁琐了而且工作量会加大.所以,我们会统一进行加解密处理,一种比较传统的 ...

  5. gganimate|创建可视化动图,让你的图表会说话

    本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/kKQ2670FBiDqVCMuLBL9NQ 更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号. ...

  6. 使用HttpReports快速搭建API分析平台

    HttpReports 简单介绍 HttpReports 是 .Net Core下的一个Web组件,适用于 WebAPI 项目和 API 网关项目,通过中间件的形式集成到您的项目中, 通过HttpRe ...

  7. Spring Cloud(二):Eureka 服务注册中心

    前言 服务治理 随着业务的发展,微服务应用也随之增加,这些服务的管理和治理会越来越难,并且集群规模.服务位置.服务命名都会发生变化,手动维护的方式极易发生错误或是命名冲突等问题.而服务治理正是为了解决 ...

  8. shell配置mysql主从

    Environment:CentOS7两台主机 一台做主机,一台做备份机 注意: 首先第一步关闭两台机器的防火墙 主机shell操作: #!/bin/bash slave_user='zjt' sla ...

  9. mac eclipse maven tomcat 运行错误 tomcat HTTP Status 404

    在mac系统下安装好eclipse, maven以及tomcat, 之后运行一个web的helloworld项目,出现错误 tomcat HTTP Status 404. 查看eclipse cons ...

  10. luogu P1972 [SDOI2009]HH的项链 |树状数组 或 莫队

    题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此,他的项链变得越来越长. ...