该篇是阅读MySql 5.1 参考手册做的笔记,链接如:http://www.matools.com/api/mysql。
创建数据库
create database 数据库名;
使用数据库
use 数据库名;
查看所有数据库
show databases;
查看数据库下所有表
show tables;
创建表
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
查看表所有属性
describe 表名
插入一条数据
insert into pet values ('Puffball','Diane','hamster','f','1999-03-30',NULL);
查询表数据
- 格式
-
SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy; - 查询所有记录
-
select * from pet
- 选择特殊行
-
SELECT * FROM pet WHERE name = 'Bowser'
字符串比较不区分大小写。
- 选择特殊列
-
select name, birth from pet
discount 去除重复数据。 - 分类行
-
select name, birth from pet order by birth
默认会按照升序进行排序,升序
ASC
,降序DESC
。
可以使用BINARY强制执行区分大小写的分类功能,如:ORDER BY BINARY col_name.
多个列排序,如下:ORDER BY species, birth DESC;
。
注意DESC
关键字仅适用于在它前面的列名(birth
);不影响species
列的排序顺序。
更新表数据
update set birth = '1989-08-31' where name = 'Bowser'
日期计算
SELECT name, birth, CURDATE(), (YEAR(CURDATE())-YEAR(birth)) - (RIGHT(CURDATE(),5)<RIGHT(birth,5)) AS age FROM pet;
YEAR()提取日期的年部分;
RIGHT()提取日期的MM-DD (日历年)部分的最右面5个字符;
查询下个月出生的宠物
SELECT name, birth FROM pet WHERE MONTH(birth) = MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH));
NULL值操作
NULL判断,查找是NULL和不是NULL的语句如下:birth is NULL
, birth is not NULL
。
group by
中 两个 null 视为相同。
MySql中 NULL
是最大的值。
模式匹配
在MySql中,“_”
匹配任何单个字符,而 “%”
匹配任意数目字符(包括零字符),使用 LIKE
或 NOT LIKE
比较操作符。
计数行
SELECT COUNT(*) FROM pet;
SELECT owner, COUNT(*) FROM pet GROUP BY owner;
当前链接的数据库
select database()
查询组中最大值
SELECT article, MAX(price) AS price
FROM shop
GROUP BY article
拥有某个字段的组间最大值的行
SELECT article, dealer, price
FROM shop s1
WHERE price=(SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article);
使用用户变量
SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop;
SELECT * FROM shop WHERE price=@min_price OR price=@max_price;
附录
批量插入初始数据
INSERT INTO pet
VALUES('Fluffy','Harold','cat','f','1993-02-04',NULL),
('Claws','Gwen','cat','m','1994-03-17',NULL),
('Buffy','Harold','dog','f','1989-05-13',NULL),
('Fang','Benny','dog','m','1990-08-27',NULL),
('Bowser','Diane','dog','m','1979-08-31','1995-07-29 '),
('Chirpy','Gwen','bird','f','1998-09-11',NULL),
('Whistler','Gwen','bird',NULL ,'1997-12-09',NULL),
('Slim','Benny','snake','m','1996-04-29',NULL),
('Puffball','Diane','hamster','f','1999-03-30',NULL)