-- 查询 5+7 5*7
SELECT 5+7,5*7;
-- 查询 函数--用到再查询就好了
-- 查看当前打开的数据库
SELECT DATABASE();
-- 查看 MySQL版本
SELECT VERSION();
-- 查看 系统时间
SELECT NOW();
-- 查看 MySQL登录用户
SELECT USER();
-- WHERE 条件 : 条件过滤
-- 比较运算符 > >= < <= != <> = <=>判断null
-- 查询表cms_user 中 编号大于3的记录
SELECT * FROM cms_user
WHERE id>3;
-- 查询表cms_user 中 编号小于等于2的记录
SELECT * FROM cms_user
WHERE id<=2;
-- 查询表cms_user 中 编号不等于2的记录
SELECT * FROM cms_user
WHERE id<>2;
-- <=>判断null
-- 给表cms_user 中 编号是 2记录 address改 null值
UPDATE cms_user SET address=null WHERE id=2;
-- 查询表cms_user 中 address字段是null值的记录
SELECT * FROM cms_user
WHERE address<=>null;
-- IS [NOT] NULL 判断null
SELECT * FROM cms_user
WHERE address IS null;
SELECT * FROM cms_user
WHERE address IS NOT null;
-- 查询表cms_user 中 编号2-4的记录
SELECT * FROM cms_user
WHERE id>=2 AND id<=4;
SELECT * FROM cms_user
WHERE id BETWEEN 2 AND 4;
-- 查询表cms_user 中 编号不在2-4的记录
SELECT * FROM cms_user
WHERE id<2 OR id>4;
SELECT * FROM cms_user
WHERE id NOT BETWEEN 2 AND 4;
-- [NOT] IN(值,值...) (取某几个不连续的值)
-- 查询表cms_user 中 编号是 2,3,5的记录
SELECT * FROM cms_user
WHERE id IN(2,3,5);
SELECT * FROM cms_user
WHERE id=2 OR id=3 OR id=5;
-- 查询表cms_user 中 编号不是 2,3,5的记录
SELECT * FROM cms_user
WHERE id NOT IN(2,3,5);
SELECT * FROM cms_user
WHERE id<>2 AND id<>3 AND id<>5;
-- 查询 表cms_user 中 name 是jerry 、
-- 密码pwd是123的记录(两字段)
SELECT * FROM cms_user
WHERE name='jerry' AND pwd='123';
-- 对表cms_user 中 编号是 2 4 7 9 的记录
UPDATE CMS_USER SET AGE=22
WHERE ID IN(2,3,5);
-- 更改 age为 22
UPDATE cms_user SET age=22
WHERE id IN(2,4,7,9);
-- 对表cms_user 中 编号是 2 4 6 8 的记录
-- 更改 address为 广州
UPDATE cms_user SET address='广州'
WHERE id IN(2,4,6,8);
-- 查询 表cms_user 中 编号在 2-7之间
-- 并且 age 大于19记录
SELECT * FROM cms_user
WHERE id>=2 AND id<=7 AND age>19;
-- 查询 表cms_user 中 age 大于19或 address是
-- 广州的记录
SELECT * FROM cms_user
WHERE age>19 OR address='广州';
-- 查询 表cms_user 中 name 中包含 'o'记录
SELECT * FROM cms_user
WHERE name LIKE '%o%';
SELECT * FROM cms_user
WHERE name LIKE '%o%';
-- 查询 表cms_user 中 name 中第二个字母是'o'记录
SELECT * FROM smc_user
WHERE name LIKE '_O%';
SELECT * FROM cms_user
WHERE name LIKE '_o%';
-- 查询 表cms_user 中 name 中最后字母是'o'记录
SELECT * FROM cms_user
WHERE name LIKE '%o';
-- 查询 表cms_user 中 name 的值是4个字母的记录
SELECT * FROM cms_user
WHERE name LIKE '____';
-------------------------------------------------------------------------------
-- 查询 对 address 分组的记录
-- 要求 :显示 address,每组的人数,每组的最大年龄字段
SELECT address,COUNT(*),MAX(age)
FROM cms_user
GROUP BY address;
-- 查询 对 age 分组的记录
-- 要求 :显示 age,每组的人数字段
SELECT age,COUNT(*)
FROM cms_user
GROUP BY age;
-- 查询 对 address 分组的记录
-- 要求 :显示 address,每组的人数,每组的最大年龄字段
-- 要求:显示每组人数大于等3的记录
SELECT address,COUNT(*) AS count,MAX(age)
FROM cms_user
GROUP BY address
HAVING count>=3;
-- 查询 2-7的记录中对 address 分组的记录
-- 要求 :显示 address,每组的人数,每组的最大年龄字段
-- 要求:显示每组人数大于等3的记录
SELECT address,COUNT(*) AS count,MAX(age)
FROM cms_user
WHERE id>=2 AND id<=7
GROUP BY address
HAVING count>=3
ORDER BY count DESC;
-- 查询 cms_user 并且对编号降序显示
SELECT * FROM cms_user
ORDER BY id DESC;
-- 查询 cms_user 并且对年龄,id 降序显示
SELECT * FROM cms_user
ORDER BY age DESC,id DESC;
-- 查询 cms_user 表中前3条的记录数
--公式:$offset=(当前页-1)*每页显示记录数
SELECT * FROM cms_user
LIMIT 0,3;
-- WHERE id<=3 准确吗?
-- 不准确 ,如果编号不连续 必须LIMIT 0,3
-- 第一个页 每页显示2条
-- $offset = (1-1)*2
SELECT * FROM cms_user
LIMIT 0,2;
-- 第二个页 每页显示2条
-- $offset = (2-1)*2
SELECT * FROM cms_user
LIMIT 2,2;
-- 第三个页 每页显示2条
-- $offset = (3-1)*2
SELECT * FROM cms_user
LIMIT 4,2;
-- 第四个页 每页显示2条
-- $offset = (4-1)*2
SELECT * FROM cms_user
LIMIT 6,2;
-- 第五个页 每页显示2条
-- $offset = (5-1)*2
SELECT * FROM cms_user
LIMIT 8,2;
-- 降序分页:第一页
SELECT * FROM cms_user
ORDER BY id desc
LIMIT 0,2;
-- 降序分页:第二页
SELECT * FROM cms_user
ORDER BY id desc
LIMIT 2,2;
-------------------------------------------------------------------------------
-- 更新 cms_user 中 address 值
-- 编号 135 值为1 编号2468 值为2
UPDATE cms_user SET address=1
WHERE id IN(1,3,5);
UPDATE cms_user SET address=2
WHERE id IN(2,4,6,8);
UPDATE cms_user SET address=3
WHERE id IN(7,9);
-- 修改 cms_user中address类型为 SMALLINT UNSIGNED NOT NULL
ALTER TABLE cms_user
MODIFY address SMALLINT
UNSIGNED NOT NULL;
-- 创建新的表 cms_prov结构
-- 字段 id pname
CREATE TABLE cms_prov(
id SMALLINT UNSIGNED KEY AUTO_INCREMENT,
pname VARCHAR(30) NOT NULL
);
-- 给 cms_prov 添加信息
INSERT cms_prov(pname)
VALUE
('天津'),
('广州'),
('上海'),
('北京'),
('山东');
-- 查询 cms_user表信息
-- 显示字段 name,address
SELECT name,address FROM cms_user;
-- 查询两个表联合查询 cms_user,cms_prov
-- 字段 cms_user 中id,name ,cms_prov中pname
-- 并排序
SELECT u.id,u.name,p.pname
FROM cms_user AS u
INNER JOIN cms_prov AS p
ON u.address = p.id
ORDER BY u.id ASC;
MySql基础2
最新推荐文章于 2024-11-10 22:27:03 发布