首页 > 数据库 >SQL语句的学习运用

SQL语句的学习运用

时间:2023-08-30 21:31:44浏览次数:34  
标签:语句 函数 len 获取 SQL 字符串 运用 NOW SELECT

回顾 投影查询

SELECT 20 DIV 10 AS res;

SELECT DISTINCT s_sex FROM _stu;

SELECT s_name,s_sex FROM _stu;

投影查询之函数

mysql经常做的一些操作编写出来--封装起来--函数

  提供了很多的功能函数分为两类

 单值函数【一个或者零个参数进 一个结果返回】

  数学函数

  字符串函数

  日期函数

  条件函数

  信息函数和加密函数

  其他函数

  多值函数,也叫聚合函数 0个或者多个参数进 一个结果出】

  单值函数--数学函数

绝对值和圆周率

SELECT ABS(-125),PI()

数据精度处理 小数转化成整数

floor(x) 直接取出x的小数部分保留整数

ceil(x)和ceiling(x)得到的结果是大于x的最小整数

round(x) 小数位四舍五入得到整数

SELECT FLOOR(12.55),CEIL(12.56),CEILING(12.77),ROUND(12.88)

SELECT FLOOR(12.22),CEIL(12.00),CEILING(12.22),ROUND(12.22)

获取随机数 rand() rand(x) 获取一个随机数

SELECT RAND();

SELECT RAND(10);

获取1-9随机整数

SELECT ROUND(RAND()*8+1)

求余数和平方根

SELECT SQRT(9),MOD(12,5)

数据的幂运算

SELECT POW(2,3),POWER(2,4)

小数精度处理

round(x,n) x小数保留小数点后n位 可以是负数 四舍五入

truncate(x,n) x小数保留小数点后n位 直接舍弃后面多的小数位

SELECT ROUND(1.2345,2),TRUNCATE(12.35,1)

获取字符串的长度

CHAR_LENGTH(x)返回的是字符串x的字符个数

length(x) 返回的是字符串x在当前数据编码环境中占得字节数

SELECT CHAR_LENGTH('今天不错'),LENGTH('今天不错')

字符串的连接

CONCAT(字符串1,字符串2...) 可以将多个字符串拼接长一个字符串

CONCAT_WS(连接符,字符串1,字符串2...) 可以将多个字符串同连接符连接成一个字符串

SELECT CONCAT('今天','不要再玩了','学点东西','动动手'),CONCAT_WS('-','你好','学点吧')

大小写转化 lower和upper

SELECT LOWER('sadaWWRWR'),UPPER('sasfaf')

翻转字符串

SELECT REVERSE("今天好好学习")

截取字符串

截取空格

trim(x) 会将x前后空格去除

ltrim(x) 会将x左边的空格去除

rtrim(x) 会将x右边的空格去除

SELECT TRIM('    你好    '),LTRIM('    你好    '),RTRIM('    你好    ');

 

TRIM('x'FROM'y')去除y两边的x字符串

SELECT TRIM('sa'FROM'saggrwewsa')

获取子字符串 获取我们想要的字符串

left(x,n) 获取x字符串左边n个字符

right(x,n) 获取x字符串右边n个字符

SELECT LEFT('grfwewee',3),RIGHT('dsadweeeee',4)

SELECT LEFT(s_name,1) FROM _stu;

填补字符串

lpad(x1,len,x2) 会用x2去将x1填充到长度为len 返回的结果就是len长度的字符串

如果x1的长度大于len会将字符串截取到len长度

如果x1的长度小于len才会使用下x2填充到对应长度

SELECT LPAD("abcdefg",12,'2'),RPAD('ABCDEFG',2,'3333');

字符串

substring(x,n)和substring(x,n) 从x字符串的第n个字符开始截取返回

SELECT SUBSTRING("今天天气不错",2),SUBSTRING("今天天气不错" FROM 2)

substring(x,n,len) 从x字符串中第n个字符开始截取len长度字符串返回

SELECT SUBSTRING("今天天气不错",2,2),SUBSTRING("今天天气不错" FROM 2 FOR 2)

重复字符串

SELECT REPEAT("下课",10);

函数查询-日期处理函数

可以使用函数获取我们想要的日期信息

基础处理

SELECT '2023-07-14'-'2002-5-17'

SELECT '2023-07-14'>'2002-5-17'

获取当前的日期信息

获取yyyy-mm-dd

SELECT CURDATE(),CURRENT_DATE()

获取yyyy-mm-dd hh:mm:ss

SELECT NOW(),SYSDATE(),LOCALTIME(),CURRENT_TIMESTAMP();

获取 hh:mm:ss

SELECT CURRENT_TIME();

获取日期的月份

SELECT MONTH(NOW()),MONTHNAME(NOW());

获取年

SELECT YEAR(NOW())

获取天

SELECT DAY(NOW())

获取小时

SELECT HOUR(NOW()),MINUTE(NOW()),SECOND(NOW())

获取星期

DAYNAME(NOW()) 日期对应星期的英文名字

DAYOFWEEK(NOW()) 日期对应的英文日历位置(周日 周一......周六)(12......6)

WEEKDAY(NOW()) 日期对应星期的索引 (周一,周二......周日)(0 1......6)

SELECT DAYNAME(NOW()),DAYOFWEEK(NOW()),WEEKDAY(NOW());

获取一些特殊时间

获取一年中的周数

SELECT WEEK(NOW()),WEEKOFYEAR(NOW());

SELECT WEEKOFYEAR('2023-12-30')

获取第几天

对应日期是一年中的第几天

SELECT DAYOFYEAR(NOW());

对应日期是一个月中的第几天

SELECT DAYOFMONTH(NOW());

获取是第几个季度

SELECT QUARTER(NOW())

日期转化

当前的小时分钟秒 转化成秒数

SELECT TIME_TO_SEC(NOW());

SELECT SEC_TO_TIME(12000);

标签:语句,函数,len,获取,SQL,字符串,运用,NOW,SELECT
From: https://blog.51cto.com/u_16220922/7297296

相关文章

  • 详解 canal 同步 MySQL 增量数据到 ES
    canal是阿里知名的开源项目,主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费。这篇文章,我们手把手向同学们展示使用canal将MySQL增量数据同步到ES。1集群模式图中server对应一个canal运行实例,对应一个JVM。server中包含1..n个instance,我......
  • MySQL 使用Navicat delete/insert into/update 大量数据表锁死,kill的线程后线程处于ki
      MySQL使用delete/insertinto/update大量数据表锁死,kill的线程后线程处于killed状态问题解决实际生产环境问题描述:使用Navicat备份BigData数据表时不小心点到了取消按钮,导致数据表被锁。  查看MySQL线程队列,找到刚刚执行的SQL看是属于什么状态。showprocessli......
  • mysql COALESCE用法 ,GROUP_CONCAT分组用法
    sdroot.dept_namecompany,COALESCE((casewhensd5.dept_name=sdroot.dept_namethennullelsesd5.dept_nameend),(casewhensd4.dept_namein(sdroot.dept_name,sd5.dept_name)thennullelsesd4.dept_nameend),(casewhen......
  • Mysql常用SQL语句
    --查询数据库中有多少表SELECTCOUNT(1)TABLES,table_schemaFROMinformation_schema.TABLESWHEREtable_schema='数据库名'GROUPBYtable_schema;--查询表中有多少字段SELECTCOUNT(*)FROMinformation_schema.COLUMNSWHEREtable_schema='数据库名'ANDtabl......
  • MySQL 主从自动修复工具"pt-slave-repair"
    工具下载:https://github.com/hcymysql/pt-slave-repairpt-slave-repair工具简介:MySQL主从复制作为一种常见的数据同步方式,有时候会出现同步错误导致同步中断的情况。手动修复这些同步错误通常需要耗费不少时间和精力,并且对于不熟悉MySQL复制的人来说比较困难。pt-slave-rep......
  • centos 离线安装 mysql5.7
    下载离线安装包tarhttps://dev.mysql.com/downloads/mysql/5.7.html#downloads(mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz)移动到安装目录解压/usr/local/tar-zxvfmysql-5.7.36-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.36-linux-glibc2.12-x86_64mysql创建用......
  • Bugku-web36(sql注入)
    这个题目对于我来说还是很有难度的;;;毕竟我菜;;;唉;;;打开页面是个登录界面::扫描看了一圈发现这个images下面有这个sql的图片,这个是sql注入问题没错了,但是怎么注入是个问题;;sql注入学的太菜了;还是好好补基础;看了各种大师傅的blog还是挺懵逼的;;;selectuserfrommysql.userwhereuser=......
  • mysql学习教程篇(三)
    一、分组查询#进阶5:分组查询/*语法:select查询列表from表【where筛选条件】groupby分组的字段【orderby排序的字段】;特点:1、和分组函数一同查询的字段必须是groupby后出现的字段2、筛选分为两类:分组前筛选和分组后筛选 针对的表 位置 连接的关键字分......
  • mysql学习教程篇(二)——基础查询和条件查询
    1.基础查询#进阶1:基础查询/*语法:select查询列表from表名;类似于:System.out.println(打印东西);特点:1、查询列表可以是:表中的字段、常量值、表达式、函数2、查询的结果是一个虚拟的表格*/USEmyemployees;#1.查询表中的单个字段SELECTlast_nameFROMemploy......
  • docker 安装mysql
    dockerpullmysqldockerimagesdockerrun-p3306:3306--namemysql--restart=always--privileged=true\-v/usr/local/mysql/log:/var/log/mysql\-v/usr/local/mysql/data:/var/lib/mysql\-v/usr/local/mysql/conf:/etc/mysql\-v/etc/localtime:/et......