MySQL基礎(chǔ)之?dāng)?shù)據(jù)管理與常用函數(shù)

記錄操作

添加記錄

  • INSERT [INTO] tbl_name[(col_name,...)] {VALUE|VALUES}(VALUES...);
  • 不指定字段名稱 INSERT tbl_name VALUE(value...) 需要按照建表時(shí)的字段順序給每一個(gè)字段賦值
  • 一次插入多條記錄 INSERT tbl_name[(字段名稱,...)] VALUES(值,...),(值,....),(值,...)0
  • INSERT ... SET的形式 INSERT tbl_name SET 字段名稱=值,...;
  • INSERT ... SELECT INSERT tbl_name[(字段名稱...)] SELECT 字段名稱,... FROM tbl_name [WHERE 條件]

修改記錄

  • UPDATE tbl_name SET 字段名稱 = 值 ,字段名稱 = 值[WHERE條件] 如果不添加條件盒粮,整個(gè)表中的記錄都會(huì)被更新

刪除記錄

  • DELETE FROM tbl_name[WHERE 條件] 如果不添加條件凡蜻,所有記錄都被刪除
  • DELETE 清空數(shù)據(jù)表時(shí)不會(huì)重置AUTO_INCREMENT的值尔觉,可以通過(guò)ALTER語(yǔ)句將其設(shè)置為1 ALTER TABLE tbl_name AUTO_INCREMENT = 1;
  • 徹底清空數(shù)據(jù)表 TRUNCATE [TABLE] tbl_name
    1埂息、清楚表中所有記錄
    2肮塞、重置AUTO_INCREMENT的值

查詢記錄

SELECT select_expr,... FROM tbl_name
[WHERE 條件]
[GROUP BY{col_name|position} HAVING 二次篩選]
[ORDER BY{col_name|postion|expr}[ASC|DESC]]
[LIMIT 限制結(jié)果集顯示條數(shù)]

  • 數(shù)據(jù)庫(kù)名.表名查詢 select * from mysql.user;
  • 給字段起別名 SELECT 字段名稱 [AS] 別名名稱,... FROM db_name.tbl_name;
  • 給數(shù)據(jù)表起別名 SELECT 字段名稱 ,... FROM tbl_name [AS] 別名;

WHERE條件篩選記錄

  • NULL 查詢要使用<=>或者IS NULL SELECT * FROM user where userDesc<=>NULL;
  • 指定范圍 [NOT]BETWEEN AND
  • 指定集合 [NOT] IN(值,...)
  • 邏輯運(yùn)算符 AND 邏輯與 OR 邏輯或
  • 匹配字符 [NOT]LIKE 一般和通配符一起使用
    1逾一、% 任意長(zhǎng)度的字符串
    2几蜻、_ 任意一個(gè)字符
-- 用戶名長(zhǎng)度為三位的用戶(三個(gè)下劃線)
SELECT * FROM user WHERE username like '___';

GROUP BY 分組

  • 把值相同放到一個(gè)組中喇潘,最終查詢出的結(jié)果只會(huì)顯示組中的一條記錄
  • 分組配合GROUP_CONCAT()查看組中的某個(gè)字段的詳細(xì)信息
-- 按性別分組,查看組中的用戶名有哪些
SELECT GROUP_CONCAT(username),sex FROM user1 
GROUP BY sex;
  • 配合聚合函數(shù)使用
    1梭稚、COUNT() 其中COUNT(*)統(tǒng)計(jì)時(shí)候包括NULL COUNT(id) 統(tǒng)計(jì)時(shí)候不包括NULL的條數(shù)
    2颖低、SUM()
    3、MAX()
    4弧烤、MIN()
    5枫甲、AVG()
  • 配合WITH ROLLUP關(guān)鍵字使用 顯示總信息
  • HAVING子句對(duì)分組結(jié)果進(jìn)行二次篩選
-- 測(cè)試查詢操作
CREATE TABLE user1(
id INT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE COMMENT '編號(hào)',
age TINYINT UNSIGNED NOT NULL DEFAULT 18  COMMENT '年齡',
sex ENUM('男','女','保密') NOT NULL DEFAULT '保密' COMMENT '性別',
addr VARCHAR(20) NOT NULL DEFAULT '北京',
married TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0代表未結(jié)婚,1代表已婚',
salary FLOAT(8,2) NOT NULL DEFAULT 0 COMMENT '薪水'
)ENGINE=INNODB CHARSET=UTF8;
INSERT user1 VALUES(1,'king',23,'男','北京',1,50000);
INSERT user1(username,age,sex,addr,married,salary) VALUES('queen',27,'女','上海',0,25000);
INSERT user1 SET username='imooc',age=31,sex='女',addr='北京',salary=40000;
INSERT user1 VALUES(NULL,'張三',38,'男','上海',0,15000),
(NULL,'張三風(fēng)',38,'男','上海',0,15000),
(NULL,'張子怡',39,'女','北京',1,85000),
(NULL,'汪峰',42,'男','深圳',1,95000),
(NULL,'劉德華',58,'男','廣州',0,115000),
(NULL,'吳亦凡',28,'男','北京',0,75000),
(NULL,'奶茶妹',18,'女','北京',1,65000),
(NULL,'劉嘉玲',36,'女','廣州',0,15000);

-- GROUP BY
SELECT * FROM user1 GROUP BY sex;

-- 按性別分組扼褪,查看組中的用戶名有哪些
SELECT GROUP_CONCAT(username),sex FROM user1 
GROUP BY sex;

-- 按照sex分組,得到用戶名詳情粱栖,并且顯示分組中的總?cè)藬?shù)
SELECT sex,GROUP_CONCAT(username),count(*) AS totalUsers  FROM user1  GROUP BY sex;

-- 按照addr分組话浇,得到用戶名的詳情,總?cè)藬?shù)闹究,得到組中年齡的總和幔崖,年齡最大值、最小值渣淤、平均值
SELECT addr,
GROUP_CONCAT(username) AS userDetail,
COUNT(*) AS totalUser,
SUM(age),
MAX(age),
MIN(age),
AVG(age)
FROM user1
GROUP BY addr;

-- WITH ROLLUP后面跟總條數(shù)
SELECT GROUP_CONCAT(username),
COUNT(*)
FROM user1
GROUP BY sex
WITH ROLLUP;

-- 按照字段位置進(jìn)行分組
SELECT addr,
GROUP_CONCAT(username) AS userDetail,
COUNT(*) AS totalUser,
SUM(age),
MAX(age),
MIN(age),
AVG(age)
FROM user1
GROUP BY 1;

-- 按照addr分組赏寇,統(tǒng)計(jì)總?cè)藬?shù)
SELECT COUNT(*),addr,
GROUP_CONCAT(username)
FROM user1
GROUP BY addr;

-- 對(duì)于分組結(jié)果進(jìn)行二次篩選,條件是組中總?cè)藬?shù)>=3
SELECT COUNT(*),addr,
GROUP_CONCAT(username)
FROM user1
GROUP BY addr 
HAVING COUNT(*) >=3; 

ORDER BY 實(shí)現(xiàn)排序效果

-- 按照多個(gè)字段排序
SELECT id,username,age
FROM user1
ORDER BY age ASC, id ASC;

-- 實(shí)現(xiàn)隨機(jī)記錄
SELECT id,username,age
FROM user1
ORDER BY RAND();

LIMIT限制結(jié)果集的顯示條數(shù)

  • LIMIT 值 :顯示結(jié)果集的前幾條記錄
  • LIMIT offset,row_count 從offset開(kāi)始价认,顯示幾條記錄
-- 顯示前3條記錄
SELECT id,username,age
FROM user1
LIMIT 0,3;

-- 顯示接下來(lái)的3條
SELECT id,username,age
FROM user1
LIMIT 3,3;

高級(jí)操作

多表聯(lián)查

  • 笛卡爾積的形式
  • 內(nèi)連接的形式
    SELECT 字段名稱,... FROM tbl_name1
    INNER JOIN tbl_name2
    ON 連接條件
  • 外連接的形式
    1嗅定、左外連接:先顯示左表中的全部記錄,再去右表中查詢復(fù)合條件的記錄用踩,不符合的以NULL代替
    SELECT 字段名稱,... FROM tbl_name1
    LEFT [OUTER] JOIN tbl_name2
    ON 條件;
    2渠退、右外連接:先顯示右表中的全部記錄,再去左表中查詢復(fù)合條件的記錄脐彩,不符合的以NULL代替
    SELECT 字段名稱,... FROM tbl_name1
    RIGHT [OUTER] JOIN tbl_name2
    ON 條件;
CREATE DATABASE IF NOT EXISTS test2 DEFAULT CHARACTER SET 'UTF8';
USE test2;
CREATE TABLE emp(
id INT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE COMMENT '編號(hào)',
age TINYINT UNSIGNED NOT NULL DEFAULT 18  COMMENT '年齡',
sex ENUM('男','女','保密') NOT NULL DEFAULT '保密' COMMENT '性別',
addr VARCHAR(20) NOT NULL DEFAULT '北京',
depId TINYINT UNSIGNED NOT NULL COMMENT '部門(mén)對(duì)應(yīng)的編號(hào)'
)ENGINE=INNODB CHARSET=UTF8;

INSERT emp(username,age,depId) VALUES('king',24,1),
('queen',25,2),
('imooc',26,1),
('lily',27,1),
('rose',28,3),
('john',29,3);

INSERT emp(username,age,depId)  VALUES('測(cè)試用戶',39,6);

CREATE TABLE dep(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
depName VARCHAR(50) NOT NULL UNIQUE,
depDesc VARCHAR(100) NOT NULL DEFAULT ''
)ENGINE=INNODB CHARSET=UTF8;
INSERT dep(depName,depDesc) VALUES('PHP教學(xué)部','研發(fā)PHP課件'),
('JAVA教學(xué)部','研發(fā)JAVA課件'),
('WEB前端教學(xué)部','研發(fā)WEB前端課件'),
('IOS教學(xué)部','研發(fā)IOS課件');


-- 查詢 emp id username age  部門(mén)名稱 dep depName

SELECT emp.id,emp.username,emp.age,dep.depName FROM emp,dep;

SELECT e.id,e.username,e.age,d.depName
FROM emp AS e
INNER JOIN dep AS d
ON e.depId=d.id;

-- 查詢emp id username age addr dep id depName depDesc
SELECT e.id,e.username,e.age,e.addr,
d.id,d.depName,d.depDesc
FROM dep AS d
JOIN emp AS e
ON d.id=e.depId;

-- 測(cè)試左外連接
SELECT e.id,e.username,e.age,d.depName,d.depDesc
FROM emp AS e
LEFT OUTER JOIN dep AS d
ON e.depId=d.id;

-- 測(cè)試右外連接
SELECT e.id,e.username,e.age,d.depName,d.depDesc
FROM emp AS e
RIGHT JOIN dep AS d
ON e.depId=d.id;

外鍵約束的使用

  • 只有innodb存儲(chǔ)引擎支持外鍵
  • [CONSTRAINT 外鍵名稱 ]FOREIGN KEY(字段名稱) REFERENCES 主表(字段名稱)
  • 子表的外鍵字段和主表的主鍵字段類型要相似碎乃;如果是數(shù)值型要求一致,并且無(wú)符號(hào)也要一致惠奸;如果是字符型梅誓,要求類型一致,長(zhǎng)度可以不同
  • 如果外鍵字段沒(méi)有創(chuàng)建索引,MySQL會(huì)自動(dòng)幫我們添加索引
  • 子表的外鍵關(guān)聯(lián)的必須是父表的主鍵
  • 外鍵約束的參照操作
    1梗掰、CASCADE 從父表刪除或更新嵌言,子表也跟著刪除或者更新,級(jí)聯(lián)的操作
    2愧怜、SET NULL 從父表刪除或者更新記錄呀页,并設(shè)置子表的外鍵列為NULL。
    3拥坛、NO ACTION | RESTRICT 拒絕對(duì)父表做更新或者刪除操作
-- 指定級(jí)聯(lián)操作 DELETE CASCADE UPDATE CASCADE 更新父表相關(guān)子表也會(huì)更新
ALTER TABLE news
ADD FOREIGN KEY(cateId) REFERENCES news_cate(id)
ON DELETE CASCADE ON UPDATE CASCADE;
-- 添加外鍵名稱

-- 新聞分類表 news_cate
CREATE TABLE news_cate(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
cateName VARCHAR(50) NOT NULL UNIQUE,
cateDesc VARCHAR(100) NOT NULL DEFAULT ''
)ENGINE=INNODB;

-- 新聞表 news
CREATE TABLE news(
id INT UNSIGNED AUTO_INCREMENT KEY,
title VARCHAR(100) NOT NULL UNIQUE,
content VARCHAR(1000) NOT NULL,
cateId TINYINT UNSIGNED NOT NULL,
FOREIGN KEY(cateId) REFERENCES news_cate(id)
)ENGINE=INNODB;

-- SHOW CREATE TABEL news,自動(dòng)創(chuàng)建了cateId的索引
| news  | CREATE TABLE `news` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  `content` varchar(1000) NOT NULL,
  `cateId` tinyint(3) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `title` (`title`),
  KEY `cateId` (`cateId`),
  CONSTRAINT `news_ibfk_1` FOREIGN KEY (`cateId`) REFERENCES `news_cate` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

-- 測(cè)試cateID外鍵對(duì)應(yīng)的id不存在蓬蝶,是否可以插入
INSERT INTO news(title,content,cateId) VALUES('A6','SSAW33',45);

-- 測(cè)試刪除父表中的記錄,和刪除父表
DELETE FROM news_cate WHERE id =1;

動(dòng)態(tài)創(chuàng)建和刪除外鍵

-- 動(dòng)態(tài)刪除外鍵 ALTER TABLE tbl_name DROP FOREIGN KEY fk_name;
-- 動(dòng)態(tài)添加外鍵
1猜惋、 ALTER TABLE tbl_name
[CONSTRAINT 外鍵名稱] ADD FOREIGN KEY(外鍵字段) REFERENCES 主表(主鍵字段);
2丸氛、動(dòng)態(tài)添加外鍵之前表中的記錄一定合法的記錄,沒(méi)有臟值著摔,否則外鍵添加不成功

-- 動(dòng)態(tài)刪除外鍵,刪除了外鍵缓窜,當(dāng)初創(chuàng)建外鍵自動(dòng)產(chǎn)生的索引還在
ALTER TABLE news
DROP FOREIGN KEY news_ibfk_1;

-- 添加外鍵
ALTER TABLE news
ADD FOREIGN KEY (cateId) REFERENCES news_cate(id);

子查詢

  • SELECT 字段名稱 FROM tbl_name WHERE col_name=(SELECT col_name FROM tbl_name)
  • 內(nèi)層語(yǔ)句查詢的結(jié)果可以做為外層語(yǔ)句查詢的條件
  • 由IN引發(fā)的子查詢
  • 由比較運(yùn)算符引出的子查詢
  • 由EXISTS引發(fā)的子查詢
  • 復(fù)制表CREATE TABLE tbl_name LIKE tbl_name;
-- 測(cè)試子查詢

-- 測(cè)試由IN引發(fā)的子查詢
SELECT *  FROM emp where depId IN(SELECT id from dep);

SELECT *  FROM emp where depId NOT IN(SELECT id from dep);

-- 學(xué)員stu
CREATE TABLE stu(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE,
score TINYINT UNSIGNED NOT NULL
);
INSERT stu(username,score) VALUES('king',95),
('queen',75),
('zhangsan',69),
('lisi',78),
('wangwu',87),
('zhaoliu',88),
('tianqi',98),
('ceshi',99),
('tiancai',50);

-- 分?jǐn)?shù)級(jí)別level
CREATE TABLE level(
id tinyint UNSIGNED AUTO_INCREMENT KEY,
score TINYINT UNSIGNED COMMENT '分?jǐn)?shù)'
);
INSERT level(score) VALUES(90),(80),(70);

-- 由比較運(yùn)算符引出的子查詢
-- 查詢出成績(jī)優(yōu)秀的學(xué)員
SELECT * FROM stu WHERE score >= (SELECT score FROM level where id =1);

-- 由EXISTS引發(fā)的子查詢
SELECT * FROM emp WHERE EXISTS(SELECT depName FROM dep WHERE id = 10);
  • ANY SOME ALL


    圖片.png
-- 帶有ANY SOME ALL關(guān)鍵字的子查詢
SELECT * FROM stu 
WHERE score >= ANY(SELECT score FROM level);

SELECT * FROM stu 
WHERE score >= SOME(SELECT score FROM level);

SELECT * FROM stu 
WHERE score >= ALL(SELECT score FROM level);

聯(lián)合查詢的使用

  • UNION 重復(fù)部分會(huì)合并到一起
    SELECT 字段名稱,... FROM tbl_name1
    UNION
    SELECT 字段名稱... FROM tbl_name2;
  • UNION ALL 簡(jiǎn)單的合并兩張表的所有數(shù)據(jù)
    SELECT 字段名稱,... FROM tbl_name1
    UNION ALL
    SELECT 字段名稱... FROM tbl_name2;
-- 創(chuàng)建一個(gè)user1表,id username
CREATE TABLE user1(
    id INT UNSIGNED AUTO_INCREMENT KEY,
    username VARCHAR(20)
)SELECT id,username FROM emp;

--  將user表中的用戶名寫(xiě)入到user1表中
INSERT user1(username) SELECT username FROM user;

-- 去掉字段重復(fù)值
SELECT DISTINCT(username) FROM user2;

無(wú)限級(jí)分類數(shù)據(jù)表的設(shè)計(jì)與實(shí)現(xiàn)

自身連接查詢
-- 測(cè)試自身連接
CREATE TABLE cate(
    id SMALLINT UNSIGNED AUTO_INCREMENT KEY,
    cateName VARCHAR(100) NOT NULL UNIQUE,
    pId SMALLINT UNSIGNED NOT NULL DEFAULT 0
);
INSERT cate(cateName,pId) VALUES('服裝',0);
INSERT cate(cateName,pId) VALUES('數(shù)碼',0);
INSERT cate(cateName,pId) VALUES('箱包',0);

INSERT cate(cateName,pId) VALUES('男裝',1);
INSERT cate(cateName,pId) VALUES('女裝',1);
INSERT cate(cateName,pId) VALUES('內(nèi)衣',1);

INSERT cate(cateName,pId) VALUES('電視',2);
INSERT cate(cateName,pId) VALUES('冰箱',2);
INSERT cate(cateName,pId) VALUES('洗衣機(jī)',2);

INSERT cate(cateName,pId) VALUES('愛(ài)馬仕',3);
INSERT cate(cateName,pId) VALUES('LV',3);
INSERT cate(cateName,pId) VALUES('GUCCI',3);

INSERT cate(cateName,pId) VALUES('夾克',4);
INSERT cate(cateName,pId) VALUES('襯衫',4);
INSERT cate(cateName,pId) VALUES('褲子',4);

INSERT cate(cateName,pId) VALUES('液晶電視',10);
INSERT cate(cateName,pId) VALUES('等離子電視',10);
INSERT cate(cateName,pId) VALUES('背投電視',10);

-- 查詢所有的分類信息谍咆,并且得到其父分類
SELECT s.id ,s.cateName AS sCateName,p.cateName AS pCateName
FROM cate AS s
LEFT JOIN cate AS p
ON s.pId = p.id;

-- 查詢所有分類及其子分類
SELECT p.id ,p.cateName AS pCateName,s.cateName AS sCateName
FROM cate AS s
LEFT JOIN cate AS p
ON s.pId = p.id;



sCate 表
id | cateName        | pId |
+----+-----------------+-----+
|  1 | 服裝            |   0 |
|  2 | 數(shù)碼            |   0 |
|  3 | 玩具            |   0 |
|  4 | 男裝            |   1 |
|  5 | 女裝            |   1 |
|  6 | 內(nèi)衣            |   1 |
| 10 | 電視            |   2 |
| 11 | 冰箱            |   2 |
| 12 | 洗衣機(jī)          |   2 |
| 13 | 愛(ài)馬仕          |   3 |
| 14 | LV              |   3 |
| 15 | GUCCI           |   3 |
| 16 | 夾克            |   4 |
| 17 | 襯衫            |   4 |
| 18 | 褲子            |   4 |
| 19 | 液晶電視        |  10 |
| 20 | 等離子電視      |  10 |
| 21 | 背投電視        |  10

pCate
id | cateName        | pId |
+----+-----------------+-----+
|  1 | 服裝            |   0 |
|  2 | 數(shù)碼            |   0 |
|  3 | 玩具            |   0 |
|  4 | 男裝            |   1 |
|  5 | 女裝            |   1 |
|  6 | 內(nèi)衣            |   1 |
| 10 | 電視            |   2 |
| 11 | 冰箱            |   2 |
| 12 | 洗衣機(jī)          |   2 |
| 13 | 愛(ài)馬仕          |   3 |
| 14 | LV              |   3 |
| 15 | GUCCI           |   3 |
| 16 | 夾克            |   4 |
| 17 | 襯衫            |   4 |
| 18 | 褲子            |   4 |
| 19 | 液晶電視        |  10 |
| 20 | 等離子電視      |  10 |
| 21 | 背投電視        |  10

MySQL常用函數(shù)

數(shù)學(xué)函數(shù)的使用

  • CEIL() 進(jìn)一取整
  • FLOOR() 舍掉小數(shù)部分
  • ROUND() 四舍五入
  • TRUNCATE() 截取小數(shù)點(diǎn)后幾位
  • MOD() 取余數(shù)
  • ABS() 取絕對(duì)值
  • POWER() 冪運(yùn)算
  • PI() 圓周率
  • RAND()或者RAND(X) 0~1之間的隨機(jī)數(shù)
  • SIGN(X) 得到數(shù)字符號(hào)
  • EXP(X) 計(jì)算e的x次方

字符串函數(shù)

  • CHAR_LENGTH(); 得到字符串的字符數(shù)
  • LENGTH(); 得到字符串的長(zhǎng)度
  • CONCAT(s1,s2,....); 將字符串合并為一個(gè)字符串,包含null返回結(jié)果就是null
  • CONCAT_WS(x,s1,s2,....); 以指定分隔符拼接字符串
  • REVERSE() 字符串反轉(zhuǎn)
  • LEFT()|RIGHT(); 返回字符串的前幾個(gè)字符或者后幾個(gè)字符
  • LPAD()|RPAD();用字符串填充到指定長(zhǎng)度
  • TRIM()|LTRIM()|RTRIM() 去掉字符串兩端的空格
  • REPEAT():重復(fù)指定的次數(shù)
  • REPLACE():字符串
  • SUBSTRING();截取字符串SUBSTRING 起始位置從1開(kāi)始
  • STRCMP();比較字符串禾锤,按照ASCII
-- 測(cè)試字符串函數(shù)

-- CHAR_LENGTH(); 得到字符串的字符數(shù)
SELECT CHAR_LENGTH('SAHHIA');

-- 以下漢字顯示3個(gè)字符
SELECT CHAR_LENGTH('你好啊');

-- LENGTH(); 得到字符串的長(zhǎng)度,一個(gè)中文在utf-8占3位
SELECT LENGTH('你好啊');

-- CONCAT(s1,s2,....); 將字符串合并為一個(gè)字符串
SELECT CONCAT('A','B','C');

-- 有null的情況結(jié)果就為null
SELECT CONCAT('A','B','C',null);

-- CONCAT_WS(x,s1,s2,....); 以指定分隔符拼接字符串
SELECT CONCAT_WS('-','A','B','C');
SELECT CONCAT_WS('-','A','B','C',NULL);
SELECT CONCAT_WS(NULL,'A','B','C');

-- REVERSE() 字符串反轉(zhuǎn)
SELECT REVERSE('ABCDEFG');

--  LEFT()|RIGHT(); 返回字符串的前幾個(gè)字符或者后幾個(gè)字符
SELECT LEFT('HELLO',2),RIGHT('HELLO',2);

-- LPAD()|RPAD();用字符串填充到指定長(zhǎng)度
SELECT LPAD('ABC',10,'?');
SELECT RPAD('ABC',10,'!');

-- 去掉字符串兩端的空格TRIM()|LTRIM()|RTRIM():

SELECT CONCAT('*',TRIM(' abc '),'*'),CONCAT('*',LTRIM(' abc '),'*'),CONCAT('*',RTRIM(' abc '),'*');

-- REPEAT():重復(fù)指定的次數(shù)
SELECT REPEAT('HELLO',4);

-- REPLACE():字符串
SELECT REPLACE('HELLO KING','KING','QUEEN');

-- SUBSTRING();截取字符串SUBSTRING 從1開(kāi)始截取
SELECT SUBSTRING('ABCDEF',1,4);

-- STRCMP();比較字符串
SELECT STRCMP('A','B');

日期時(shí)間常用函數(shù)

  • 返回當(dāng)前日期
    SELECT CURDATE() ,CURRENT_DATE();
  • 返回當(dāng)前時(shí)間
    SELECT CURTIME(),CURRENT_TIME();
  • 返回當(dāng)前日期時(shí)間
    SELECT NOW(),CURRENT_TIMESTAMP(),SYSDATE();
  • 返回月份摹察、月份名稱
    SELECT MONTH(CURDATE()),MONTHNAME(CURDATE());
  • 返回星期幾
    SELECT DAYNAME(NOW());
  • 返回一周內(nèi)的第幾天
    SELECT DAYOFWEEK(NOW());
  • 返回一年內(nèi)的第多少個(gè)星期
    SELECT WEEK(NOW());
  • 返回年月日恩掷、小時(shí)、分鐘供嚎、秒
    SELECT YEAR(NOW()),MONTH(NOW()),DAY(NOW()),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW());
  • DATEDIFF()計(jì)算兩個(gè)日期相差的天數(shù)
    SELECT DATEDIFF('2018-10-06','2018-03-02');

其他常用函數(shù)

  • 返回?cái)?shù)據(jù)庫(kù)版本
    SELECT VERSION();
  • 返回連接數(shù)
    SELECT CONNECTION_ID();
  • 返回當(dāng)前連接的數(shù)據(jù)庫(kù)
    SELECT DATABASE();
  • 返回當(dāng)前用戶
    SELECT USER(),CURRENT_USER(),SYSTEM_USER(),SESSION_USER();
  • 得到上一步插入產(chǎn)生AUTO_INCREMENT的值
    SELECT LAST_INSERT_ID();
  • MD5加密
    SELECT MD5('king');
  • password密碼加密算法
    SELECT PASSWORD('root');
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末黄娘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子克滴,更是在濱河造成了極大的恐慌逼争,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件劝赔,死亡現(xiàn)場(chǎng)離奇詭異誓焦,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)着帽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)罩阵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人启摄,你說(shuō)我怎么就攤上這事稿壁。” “怎么了歉备?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵傅是,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)喧笔,這世上最難降的妖魔是什么帽驯? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮书闸,結(jié)果婚禮上尼变,老公的妹妹穿的比我還像新娘。我一直安慰自己浆劲,他們只是感情好嫌术,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著牌借,像睡著了一般度气。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上膨报,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天磷籍,我揣著相機(jī)與錄音,去河邊找鬼现柠。 笑死院领,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的够吩。 我是一名探鬼主播栅盲,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼废恋!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起扒寄,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鱼鼓,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后该编,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體迄本,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年课竣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嘉赎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡于樟,死狀恐怖公条,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情迂曲,我是刑警寧澤靶橱,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響关霸,放射性物質(zhì)發(fā)生泄漏传黄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一队寇、第九天 我趴在偏房一處隱蔽的房頂上張望膘掰。 院中可真熱鬧,春花似錦佳遣、人聲如沸识埋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)惭聂。三九已至,卻和暖如春相恃,著一層夾襖步出監(jiān)牢的瞬間辜纲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工拦耐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耕腾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓杀糯,卻偏偏與公主長(zhǎng)得像扫俺,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子固翰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • MYSQL 基礎(chǔ)知識(shí) 1 MySQL數(shù)據(jù)庫(kù)概要 2 簡(jiǎn)單MySQL環(huán)境 3 數(shù)據(jù)的存儲(chǔ)和獲取 4 MySQL基本操...
    Kingtester閱讀 7,820評(píng)論 5 116
  • 觀其大綱 page 01 基礎(chǔ)知識(shí) 1 MySQL數(shù)據(jù)庫(kù)概要 2 簡(jiǎn)單MySQL環(huán)境 3 數(shù)據(jù)的存儲(chǔ)和獲取 4 M...
    周少言閱讀 3,158評(píng)論 0 33
  • 鷹的重生狼纬。 今天第一次來(lái)簡(jiǎn)書(shū),給大家分享一個(gè)故事骂际,這個(gè)故事是我最喜歡的其中之一疗琉,借以此用以他來(lái)鼓勵(lì)我,用簡(jiǎn)書(shū)書(shū)寫(xiě)自...
    簡(jiǎn)女青蓮閱讀 385評(píng)論 0 0
  • 1歉铝、能繁殖的知識(shí)科學(xué)方法論盈简、邏輯科學(xué)、元認(rèn)知太示,這個(gè)概念觸及到了事務(wù)的本質(zhì)2柠贤、學(xué)習(xí)的復(fù)利點(diǎn)亮自己的技能數(shù)數(shù)學(xué)、統(tǒng)計(jì)类缤、...
    憤怒的火焰閱讀 137評(píng)論 0 0
  • 前調(diào)水果臼勉,中調(diào)花朵,后調(diào)檀木餐弱。 每一瓶香水都像極了女人的一生坚俗。
    trinitylau閱讀 200評(píng)論 0 0