|
|
-- 数学运算SELECT ABS(-8) as 绝对值 -- 绝对值SELECT CEILING(9.4) -- 向上取整SELECT FLOOR(9.4) -- 向下取整SELECT RAND() -- 返回一个 0-1 之间的随机数SELECT SIGN(-10) -- 返回一个数的符号 0 返回 0 负数返回-1 正数返回 1 ログイン後にコピー
関連する無料学習の推奨事項: mysql ビデオ チュートリアル
Function |
Function |
Example |
CHAR_LENGTH(s) |
文字列 s の文字を返します。 Number |
SELECT CHAR_LENGTH('Hello 123') – 5 |
LENGTH(s) |
文字列 s | # の長さを返します # #SELECT LENGTH('Hello 123') – 9 |
CONCAT(s1,s2,…) | 文字列 s1、s2 およびその他の文字列を 1 つの文字列に結合 | SELECT CONCAT('12','34') – 1234 |
##INSERT(s1,x,len,s2)
文字列 s2 を次の文字列に置き換えますs1 |
SELECT INSERT('12345',1,3,'abc') の x 位置から始まる長さ len の文字列 – abc45 |
| UPPER(s) ,UCASE(S)
文字列 s のすべての文字を大文字に変換します |
SELECT UPPER('abc') – ABC |
|
LOWER(s ),LCASE(s)
文字列 s のすべての文字を小文字に変換します |
SELECT LOWER('ABC') – abc | |
LEFT( s,n)
文字列 s |
SELECT LEFT('abcde',2) – ab | |
RIGHT(s) の最初の n 文字を返します。 ,n)
文字列 s |
SELECT RIGHT('abcde',2) – de | |
LPAD(s1, len,s2)
文字列 s2 を使用して s1 の先頭を埋め、文字列の長さが len |
SELECT LPAD('abc ',5,'xx') – xxabc |
| ##RPAD(s1,len,s2)
文字列 s2 を s1 の末尾に埋め、文字列の長さが len | SELECT RPAD('abc' ,5,'xx') – abcxx |
| LTRIM(s)
文字列 s の先頭のスペースを削除します |
|
#RTRIM(s) |
文字列 s
|
|
# の末尾のスペースを削除します。 ##TRIM(s) #文字列 s |
|
#TRIM(s1 FROM s)# の先頭と末尾にあるスペースを削除します | ##文字列 s
SELECT TRIM('@' FROM '@@abc@@ ') – abc |
の先頭と末尾にある文字列 s1 を削除します。 REPEAT(s,n) |
文字列 s を n 回繰り返す |
SELECT REPEAT('ab',3) – abab |
SPACE( n) |
n 個のスペースを返します |
|
| REPLACE (s,s1,s2) | 文字列 s2 を次の文字列に置き換えます文字列 s
SELECT REPLACE('abc','a','x') --xbc |
STRCMP(s1,s2) | 内の文字列 s1 文字列 s1 と s2 を比較 |
|
# #SUBSTRING(s,n,len) |
から始まる長さ len の文字列を取得します文字列 s |
|
MID(s,n,len) |
SUBSTRING(s,n,len と同じ) の n 番目の位置) |
|
##LOCATE( s1,s),POSITION(s1 IN s) | 文字列 s# から s1 の開始位置を取得します##SELECT LOCATE('b', 'abc') – 2 |
| INSTR(s,s1)
文字列から s1 の開始位置を取得しますs | SELECT INSTR('abc','b') – 2 |
| REVERSE(s)
文字列 s## の順序を反転します。 #SELECT REVERSE('abc') – cba |
|
ELT(n,s1,s2,…) |
n 番目の文字列を返します
SELECT ELT(2,'a','b','c' ) – b |
| ##FIELD(s,s1,s2…) | 最初の文字列の位置を返します一致する文字列 s
SELECT FIELD ('c','a','b','c') – 3 |
| FIND_IN_SET(s1,s2) | 文字列 s2 と同じ値を返します。 s1 と一致する文字列の位置
|
|
#-- 字符串函数SELECT CHAR_LENGTH('我们的征途是星辰和大海') -- 字符串的长度SELECT CONCAT('我','爱','猫猫') -- 拼接字符串SELECT INSERT('我爱编程helloworld',1,2,'超级热爱') -- 查询,从某个位置开始替换某个长度SELECT LOWER('MaoMao') -- 小写字母SELECT UPPER('maomao') -- 全变大写SELECT INSTR('maonmao','n') -- 返回第一次出现的子串的索引SELECT REPLACE('猫猫说坚持就能成功','坚持','努力') -- 替换出现的指定字符串SELECT SUBSTR('猫猫说坚持就能成功',4,3) -- 返回指定的子字符串 (源字符串,截取的位置,截取的长度)SELECT REVERSE('猫猫说坚持就能成功') -- 反转-- 查询有田的同学,将田改成猪SELECT REPLACE(studentname,'田','猪') FROM studentWHERE studentname LIKE '%田' ログイン後にコピー
|
関数 |
関数 |
例
|
##CURDATE();CURRENT_DATE()
Return現在の日付
SELECT CURDATE() –> 2021-01-09 |
|
NOW() |
現在の日付と時刻を返します
SELECT NOW()–> 2021-01 -09 10:03:14
|
LOCALTIME() |
現在の日付と時刻を返します |
SELECT LOCALTIME()–> 2021-01- 09 10:03:14
| ##UNIX_TIMESTAMP() | 現在時刻を UNIX 形式で返しますタイムスタンプ | SELECT UNIX_TIMESTAMP()->1617977084
|
-- 时间和日期函数(记住)SELECT CURRENT_DATE() -- 获取当前日期SELECT CURDATE() -- 获取当前日期SELECT NOW() -- 获取当前的时间SELECT LOCALTIME() -- 本地时间SELECT YEAR(NOW())SELECT MONTH(NOW())SELECT DAY(NOW())SELECT HOUR(NOW())SELECT MINUTE(NOW())SELECT SECOND(NOW())-- 系统SELECT SYSTEM_USER()SELECT USER()SELECT VERSION() ログイン後にコピー
| 集計関数 |
#関数名 |
説明 |
|
COUNT()Count
SUM()
合計 |
|
AVG()
平均値
|
MAX() |
最大値
|
MIN() |
最小値
|
-- ================ 聚合函数 ============-- 都能够统计 表中的数据 (想查询一个表中有多少个记录,就是用这个count())SELECT COUNT(studentname) FROM student; -- COUNT(指定列),会忽略所有的null值SELECT COUNT(borndate) FROM student; -- 结果 8 少一个 因为是null
SELECT COUNT(*) FROM student; -- Count(*) 不会忽略所有的null值 本质 计算行数SELECT COUNT(1) FROM result; -- Count(1) 不会忽略所有的null值 本质 计算行数SELECT SUM(studentresult) AS 总和 FROM resultSELECT AVG(studentresult) AS 平均分 FROM resultSELECT MAX(studentresult) AS 最高分 FROM resultSELECT MIN(studentresult) AS 最低分 FROM result-- 查询不同课程的平均分,最高分,最低分-- 核心:根据不同的课程分组SELECT any_value(`subjectname`) AS 科目名,AVG(studentresult) AS 平均分,MAX(studentresult) AS 最高分,MIN(studentresult) AS 最低分FROM result rINNER JOIN `subject` subON r.`subjectno` = sub.`subjectno`GROUP BY r.subjectno -- 通过什么字段来分组-- 查询不同课程的平均分,最高分,最低分,平均分大于80SELECT any_value(`subjectname`) AS 科目名,AVG(studentresult) AS 平均分,MAX(studentresult) AS 最高分,MIN(studentresult) AS 最低分FROM result rINNER JOIN `subject` subON r.`subjectno` = sub.`subjectno`GROUP BY r.subjectno -- 通过什么字段来分组HAVING 平均分>50 ログイン後にコピー |
データベース レベルでの MD5 暗号化
| MD5 とは | 主にアルゴリズムの複雑さと不可逆性を強化します
MD5 は不可逆であり、md5 の特定の値は同じです | MD5 Web サイトをクラックする原理、その背後には辞書があります 、MD5 暗号化後の値: MD5 暗号化前の値 -- ==================== 测试MD5 加密 ===================CREATE TABLE `testmd5`(
`id` INT(4) NOT NULL,
`name` VARCHAR(20) NOT NULL,
`pwd` VARCHAR(50) NOT NULL,
PRIMARY KEY(`id`))ENGINE=INNODB DEFAULT CHARSET=utf8-- 明文密码INSERT INTO testmd5 VALUES(1,'zhangsan','123456'),(2,'lisi','123456'),(3,'wangwu','123456')-- 加密UPDATE testmd5 SET pwd=MD5(pwd) WHERE id = 1UPDATE testmd5 SET pwd=MD5(pwd) -- 加密全部的密码-- 插入的时候加密INSERT INTO testmd5 VALUES(4,'xiaoming',MD5('123456'))-- 如何校验:将用户传递进来的密码,进行md5加密,然后比对加密后的值SELECT * FROM testmd5 WHERE `name`='xiaoming' AND pwd=MD5('123456') ログイン後にコピー |
その他の関連する無料学習の推奨事項:
mysql チュートリアル #(ビデオ)## |