####查询

本文介绍了如何在MySQL中进行用户管理,包括创建用户、查看用户信息和分配权限。还详细讲解了投影查询和各种数学、字符串、日期以及函数的使用,如数学函数的绝对值、随机数生成,字符串函数的长度计算和拼接等。
摘要由CSDN通过智能技术生成

#### -- root专区

**-- 创建用户**
`CREATE USER xxx@'%'IDENTIFIED BY'1234'`

**-- 查看用户**
`SELECT USER,HOST FROM mysql.user;`

**-- 给权限**
`GRANT ALL ON student.* TO xxx@'%';`

#### -- xxx 专区

**-- 创建数据库和表**
**-- 查看表信息**
`SELECT * FROM _stu;`

**-- 回顾 投影查询**
`SELECT 20 DIV 10 AS res;`
`SELECT DISTINCT s_sex FROM _stu;`
`SELECT s_name,s_sex FROM _stu;`

##### 

  **投影查询之函数**
     **mysql经常操作的一些操作编写出来,封装起来就是函数**
     **提供了很多的功能函数分为两类**
       **单值函数【一个或者零个参数进 一个结果返回】**
           **数学函数**
           **字符串函数**
           **日期函数**
           **条件函数**
           **信息函数和加密函数**
           **其他函数**
       **多值函数,也叫聚合函数 【零个或多个参数进 一个结果出】**
     

**/***
  **单值函数--数学函数**
***/**
**-- 绝对值和圆周率**
`SELECT ABS(-125),PI();`

**-- 数据精度处理 小数转化成整数**
**-- floor(x)直接去除x的小数部分,保留整数**
**-- ceil(x)和ceiling(x)得到的值都是大于等于x的最小整数**
**-- round(x)小数位四舍五入,得到整数**
`SELECT FLOOR(12.55),CEIL(12.54),CEILING(12.65),ROUND(12.77);`
`SELECT FLOOR(12.12),CEIL(12.00),CEILING(12.00),ROUND(12.44);`

**-- 获取随机数 rand() rand(x) 获取一个随机数**
**-- rand()获取0-不包含1的随机数**
`SELECT RAND();`
`SELECT RAND(10);`
**-- 获取1-9随机整数**
`SELECT ROUND(RAND()*8+1);`

**-- 求余数和平方根**
`SELECT SQRT(9),MOD(49,3);`

**-- 数据的幂运算**
`SELECT POW(2,3),POWER(2,4)`

**-- 小数精度处理**
**-- ROUND(x,n)x小数保留小数点后n位,可以是负数,四舍五入**
**-- TRUNCATE(x,n)x小数保留小数点后面n位,直接舍弃后面多的小数位**
`SELECT ROUND(1.3242,3),TRUNCATE(12.411,-1)`

**-- 三角函数 sin() tan()等**

**-- 对数 log**

**/***
  **函数查询--字符串函数**
    **主要用于字符串的处理**
***/**

**-- 获取字符串的长度**
**-- char_length(x) 返回的是字符串x的字符个数**
**-- length(x)返回的是字符串x在当前数据编码环境中,占的字节数**
`SELECT CHAR_LENGTH('玛德困死'),LENGTH('怎么这么难熬')`

**-- 字符串的拼接**
**-- concat(字符串1,字符串2,……)可以将多个字符串拼接成一个字符串**
**-- concat_ws(字符串1,字符串2……)可以将多个字符串连接符连接成一个字符串**
``SELECT CONCAT('今天','周五','明天可以睡觉');`
`SELECT CONCAT_WS('#','*','.','*','#'),CONCAT_WS('哈喽','哈哈');`` 

**-- 大小写转化  lower和upper**
`SELECT LOWER('gfsvGRWSgs'),UPPER('gssGSR');`

**-- =反转字符串**
`SELECT REVERSE('阿巴阿巴阿巴');`

**-- 截取字符串**
**-- 截取空格**
**-- trim(x) 会将x两边的空格去除**
**-- LTRIM(x)会将x左边的空格去掉**
**-- RTRIM(x)会将x右边的空格去掉**
`SELECT TRIM(' 傻逼 '),LTRIM(' 傻逼 '),RTRIM(' 傻逼 ');`
**-- TRIM('x' FROM 'y')去除y两边的x字符串**
`SELECT TRIM('xxx' FROM 'xxxxxxfsgsgxxxx')`

**-- 获取子字符串 获取想要的字符串**
`SELECT LEFT('gssgwsg',3),RIGHT('sgnbiekjs',4)`
`SELECT LEFT(s_name,1)FROM _stu`

**-- 填补字符串**
**-- **lpad(x1,len,x2)会用x2去将x1填充到长度为len**
                  **-- 如果x1的长度大于len,会将字符串截取len长度**
                  -- 如果x1的长度小于len,才会将x2填充到对应长度**
`SELECT LPAD('xxxxxxx',12,'3'),RPAD('yyyyyyy',3,'2222222')`
**-- 字符串**
**-- SUBSTRING(x,n)和SUBSTRING(x from n)从x字符串的第n个字符开始截取返回**
`SELECT SUBSTRING("傻子",2),SUBSTRING("傻子" FROM 2)`
**-- SUBSTRING(x,n,len)从x字符串中第n个字符开始截取len长度字符串返回**
`SELECT SUBSTRING('马上下课,真快',2,4),SUBSTRING('马上下课,真快啊' FROM 2 FOR 2)`

**-- 重复字符串**
`SELECT REPEAT('傻子',5)`

**-- 练习**给定字符串'   老师,赶紧下课,我不想学,无所谓!!!   '
-- 要求 获取老师
-- 获取下课,重复1
-- 获取字符串 ’想不学’
-- 获取'无所谓!!!!!'

`SELECT LEFT(TRIM('   老师,赶紧下课,我不想学,无所谓!!!   '),2)`
`SELECT REPEAT(SUBSTRING(TRIM('   老师,赶紧下课,我不想学,无所谓!!!   '),6,2),2)`
`SELECT CONCAT(REVERSE(SUBSTRING(TRIM('   老师,赶紧下课,我不想学,无所谓!!!   '),10,2)),SUBSTRING(TRIM('   老师,赶紧下课,我不想学,无所谓!!!   '),12,1));`
`SELECT CONCAT(SUBSTRING(TRIM('   老师,赶紧下课,我不想学,无所谓!!!   '),14,3),REPEAT(SUBSTRING(TRIM('   老师,赶紧下课,我不想学,无所谓!!!   '),17,1),8));`
**/***
  **函数查询之日期处理函数**
    **可以使用函数获取想要的日期信息**
***/**

**-- 基本处理**
`SELECT '2023-07-14'- '1973-08-27'`

**-- 获取当前的日期信息**
`SELECT CURDATE(),CURRENT_DATE()-- 获取yyyy-MM-dd`
`SELECT NOW(),SYSDATE(),LOCALTIME(),CURRENT_TIMESTAMP() -- 获取年月日时分秒`
`SELECT CURRENT_TIME() -- 获取时分秒`

**-- 获取日期的月份**
`SELECT MONTH(NOW()),MONTHNAME(NOW())`

**-- 获取年**
`SELECT YEAR(NOW())`

**-- 获取天**
`SELECT DAY(NOW())`

**-- 获取小时**
`SELECT HOUR(NOW()),MINUTE(NOW()),SECOND(NOW())`

**-- 获取星期**
`SELECT DAYNAME(NOW()),DAYOFWEEK(NOW()),WEEKDAY(NOW())`

****-- 获取一些特殊时间**
 -- 获取一年中的周数**
 ``SELECT WEEK(NOW()),WEEKOFYEAR(NOW())`
 `SELECT WEEKOFYEAR('2023-12-30')``

 **-- 获取第几天**
 ``SELECT DAYOFMONTH(NOW())-- 当前对应日期是这一个月的第几天`
 `SELECT DAYOFYEAR(NOW())-- 当前对应日期是一年中第几天``

 **-- 获取第几个季度**
 `SELECT QUARTER(NOW())`

**-- 日期转化**

`SELECT TIME_TO_SEC(NOW())-- 当前的小时分钟秒,转化成秒数`
`SELECT SEC_TO_TIME(NOW())`
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值