Mysql表的基本操作2

1、sql查询语句

查询语句,在开发中使用的次数最多,此处使用“zhangwu” 账务表。

  • 创建账务表:
CREATE TABLE zhangwu(
	id INT PRIMARY KEY AUTO_INCREMENT,-- 账务ID
	name VARCHAR(200),-- 账务名称
	money DOUBLE -- 金额
);
  • 插入表记录:
INSERT  INTO zhangwu(id,name,money) VALUES (1,'吃饭支出',247);
INSERT  INTO zhangwu(id,name,money) VALUES (2,'工资收入',12345);
INSERT  INTO zhangwu(id,name,money) VALUES (3,'服装支出',1000);
INSERT  INTO zhangwu(id,name,money) VALUES (4,'吃饭支出',325);
INSERT  INTO zhangwu(id,name,money) VALUES (5,'股票收入',8000);
INSERT  INTO zhangwu(id,name,money) VALUES (6,打麻将支出,8000);
INSERT  INTO zhangwu(id,name,money) VALUES (7,null,5000);
  • 查询的语法:

查询指定字段信息
SELECT 字段1,字段2....FROM 表名;
例如:
SELECT id,name FORM zhangwu;

查询表中所有的字段
SELECT * FORM 表名;

DISTINCT用于去除重复记录
SELECT DISTINCT 字段 FROM 表名;

别名查询,使用的as关键字,as可以省略的.
别名可以给表中的字段,表设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。

--表格别名格式:
SELECT *FROM 表名 AS 别名;
-- 或
SELECT * FROM 表名 别名;
列别名格式:
SELECT  字段名 AS 别名 FROM 表名;
SELECT  字段名 别名 FROM 表名;

2、条件查询

where语句表条件过滤。满足条件操作,不满足不操作,多用于数据的查询与修改。
格式 :select 字段 from 表名 where 条件;
while条件的种类如下:

比较运算符> < <= >= = <>大于、小于、大于(小于)等于、不等于
BETWEEN …AND…显示在某一区间的值(含头含尾)
LIKE 通配符模糊查询,Like语句中有两个通配符;% 用来匹配多个字符;例first_name like ‘a%’;_ 用来匹配一个字符。例first_name like ‘a_’;
IS NULL判断是否为空;is null; 判断为空;is not null; 判断不为空
逻辑运算符and多个条件同时成立
or多个条件任一成立
not不成立,例:where not(salary>100);

例如:
查询所有吃饭支出记录
SELECT * FROM zhangwu WHERE name=‘吃饭支出’;

查询金额大于等于1000的信息
SELECT * FROM zhangwu WHERE money >= 1000;

查询金额在2000-5000之间的账务信息
SELECT * FROM zhangwu WHERE money >= 2000 AND money <= 5000;
或者
SELECT * FROM zhangwu WHERE money BETWEEN 2000 AND 5000;

查询金额是1000或3500或5000的商品信息
SELECT * FROM zhangwu WHERE money =1000 or money=3500 or money=5000;
或者
SELECT * FROM zhangwu WHERE money IN(1000,3500,5000);

查询出账务名称包含"支出"的账务信息
SELECT * FROM zhangwu WHERE name LIKE "%支出%";

查询出账务名称中是五个字的账务信息
SELECT * FROM zhangwu WHERE name LIKE "_____";-- 5个下划线,一个下划线代表一个字符

查询出账务名称不为null的信息
SELECT * FROM zhangwu WHERE name IS NOT NULL;
SELECT * FROM zhangwu WHERE NOT(name IS NULL);

3、聚合查询

  • COUNT:统计指定列不为NULL的记录行数;
  • SUM:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
  • MAX:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
  • MIN:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
  • AVG:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

例如:

  1. 统计账务表中共有多少条记录
    SELECT COUNT(*) FROM zhangwu;
  2. 统计账务表中金额大于3000的有多少条记录
    SELECT COUNT(*) FROM zhangwu WHERE money>3000;
  3. 统计有多少收入的账务信息
    SELECT SUM(money) FROM zhangwu WHERE name LIKE ‘%收入%’;
  4. 统计出记录中支出的平均值
    SELECT AVG(money) FROM zhangwu WHERE name LIKE ‘%支出%’;

4、分组查询

GROUP BY 分组查询,必须跟随聚合函数一起使用
select查询的时候,被分组的列,要出现在select选择列的后面
SELECT SUM(money),name FROM zhangwu GROUP BY name;

对name内容进行分组查询求和,但只要支出
SELECT SUM(money) AS ‘getsum’,name FROM zhangwu WHERE name LIKE ‘%支出%’ GROUP BY name ORDER BY SUM(getsum) DESC;

对name内容进行分组查询求和,但是只要支出,显示金额大于5000
*结果集是分组查询后,再次进行筛选,不能使用where,分组后再次过滤需要使用关键字having
SELECT SUM(money) AS ‘getsum’,name FROM zhangwu WHERE name LIKE ‘%支出%’ GROUP BY name ORDER BY HAVING getsum>5000;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值