MySql基础2

--  查询 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值