--建表
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql语句(一) Mysql 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

--插入数据
INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("学习 PHP", "菜鸟教程", NOW());

INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("学习 MySQL", "菜鸟教程", NOW());

INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("JAVA 教程", "RUNOOB.COM", '2016-05-06');

INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("学习 Python", "RUNOOB.COM", '2016-05-06');

mysql语句(一) Mysql 第2张

 

--查询全部
select * from runoob_tbl

mysql语句(一) Mysql 第3张

--条件查询where

select * from runoob_tbl where runoob_author = "菜鸟教程"

mysql语句(一) Mysql 第4张

 


--多重条件查询
select * from runoob_tbl where runoob_author = "菜鸟教程" AND runoob_id = 1

mysql语句(一) Mysql 第5张

 

--更新数据库字段
UPDATE runoob_tbl SET runoob_title="学习 C++" WHERE runoob_id = 3

mysql语句(一) Mysql 第6张

 


--更新数据库表部分字段
UPDATE runoob_tbl SET runoob_title=REPLACE(runoob_title,'C++','Python') WHERE runoob_id = 3

mysql语句(一) Mysql 第7张

 

 

--删除数据 delete from 表名称 where 删除条件;
DELETE FROM runoob_tbl WHERE runoob_id = 3

mysql语句(一) Mysql 第8张

 


--MySQL LIKE 子句
SELECT* FROM runoob_tbl WHERE runoob_author LIKE('%COM')

mysql语句(一) Mysql 第9张

 

like 匹配/模糊匹配,会与 % 和 _ 结合使用。

'%a' //以a结尾的数据 'a%' //以a开头的数据 '%a%' //含有a的数据 '_a_' //三位且中间字母是a的 '_a' //两位且结尾字母是a的 'a_' //两位且开头字母是a的

查询以 java 字段开头的信息。

SELECT * FROM position WHERE name LIKE 'java%';

查询包含 java 字段的信息。

SELECT * FROM position WHERE name LIKE '%java%';

查询以 java 字段结尾的信息。

SELECT * FROM position WHERE name LIKE '%java';
 

在 where like 的条件查询中,SQL 提供了四种匹配方式。

  1. %:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
  2. _:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
  3. []:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
  4. [^] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
  5. 查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符 “%”、“_”、“[” 的语句无法正常实现,而把特殊字符用 “[ ]” 括起便可正常查询。

 

 

--MySQL 排序

--在命令提示符中使用 ORDER BY 子句
select * from runoob_tbl ORDER BY submission_date ASC

 

mysql语句(一) Mysql 第10张


select * from runoob_tbl ORDER BY submission_date DESC

mysql语句(一) Mysql 第11张

 

 

--MySQL GROUP BY 语句

 

--创建新表
DROP TABLE IF EXISTS `employee_tbl`;
CREATE TABLE `employee_tbl` (
`id` int(11) NOT NULL,
`name` char(10) NOT NULL DEFAULT '',
`date` datetime NOT NULL,
`singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

--插入数据
INSERT INTO `employee_tbl` VALUES ('1', '小明', '2016-04-22 15:25:33', '1'),
('2', '小王', '2016-04-20 15:25:47', '3'),
('3', '小丽', '2016-04-19 15:26:02', '2'),
('4', '小王', '2016-04-07 15:26:14', '4'),
('5', '小明', '2016-04-11 15:26:40', '4'),
('6', '小明', '2016-04-04 15:26:54', '2');

mysql语句(一) Mysql 第12张

 

 

--GROUP BY 语法

--接下来我们使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:
select name, count(*) from employee_tbl GROUP BY name

mysql语句(一) Mysql 第13张

--使用 WITH ROLLUP
--WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;

mysql语句(一) Mysql 第14张

SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
mysql语句(一) Mysql 第15张

 

 

 










扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄