数据库_MySQL: mysql数据的增查改删

版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/weixin_43851310/article/details/88043435

一、运算符

1、算术运算符(+、-、*、/、%)

2、关系运算符(>、>=、<、<=、=、!=)

注意: "="在where条件判断是否相等 在全局变量中是赋值

3、逻辑运算符(and、or、not)

二、高级增(Create)

语法:insert into 表名 (字段1,...,字段n) values (值1,...,值n);

一次插入多行数据,效率比单行插入要高

insert into 表名
(字段1,....,字段n)
values
(1,....,值n),
(1,....,值n),
......
(1,....,值n);

三、高级查(Select)

1、语法

语法: select 列名 from 表名 [where 条件][group by 分组] [having 条件][order by 排序][limit 限制];

2、字段名相关
  • 如果有字段别名(as)

语法:select 字段 as 别名,字段2 as 别名,字段3 from表名;

  • 查询语句中的选项(all 和 distinct)

语法:select [选项] 字段 from 表名;

选项:all - 显示所有数据,默认 distinct - 去重复

3、where子句/条件
  • select * from stu; 查询出所有数据
  • select * from stu where 1; 显示所有(1-真所有条件都成立)
    select * from stu where 0; 全部不显示(0-假都不成立)
4、MySQL运算符使用
  1. in | not in

    概念:判断字段值是否在指定集合中

    语法:select * from 表名 where 字段 in(值1,...,值n);

select * from stu where address = '北京';
select * from stu where address in ('北京');

注意: in的执行效率没有使用关系运算符高

  1. between and | not between and

    概念:判断字段是否在指定范围(含本身)
    语法:select * from 表名 where 字段 between 值1 and 值2;

  2. is null | is not null

    注意:

    设计表的时候避免出现null数据,所以一般都加上not null

    空字符串和null不是一个概念

  3. 通配符

    1. _ (下划线): 表示任意一个字符
    2. % : 表示任意字符
  4. 模糊查询(like)
    语法:select * from 表名 where 字段 like ‘值%_组合使用’

5、分组
  1. 聚合函数
聚合函数 描述
sum() 求和
avg() 求平均值
max() 最大值
min() 最小值
count() 记录数
  1. 分组查询(group by)

概念:以分组的形式展示数据,如按性别分组、地区分组等

目的:统计数据

语法:select 列名 from 表名 group by 待分组字段名;

按学生性别分组统计平均年龄:

select sex,avg(age) from stu group by sex;
  1. 回溯统计(with rollup)

概念:在分组的结果之上进行相同的统计(按分组统计规则重新统计表数据)

select address,sum(money) from stu group by address with rollup;

with rollup前面是获取每个地区总资金,整个函数的意思就是获取所有地区总资金

  1. 结果条件(having)

where条件是对表的数据进行赛选

having是对查询的结果再次进行筛选(通常配合分组使用)

按性别分组,统计各性别人数 超过5人的:

select sex,count(id) from stu group by sex having  count(id) > 5;
select sex,count(id) as num from stu group by sex having num > 5;
6、排序(order by)

概念:就是按照指定字段值升序(asc)或降序(desc)

语法:select 字段 from 表名 order by 字段 asc | desc

按年龄升序,如果年龄一样大则按钱升序

select * from stu order by age asc,money asc;
7、限制(limit)

语法:select 字段 from 表名 limit 起始位置,显示条数

说明:起始位置不写则默认0

根据id升序,查询前3个学生

select * from stu order by id asc limit 3;

四、高级改(Update)

语法:update 表名 set 字段1=值1,字段n=值n [where条件][order by 排序] [limit限制];

查询性别为男按照年龄降序取2条,将地址改为男人帮:

select * from stu where sex = '男' order by age desc limit 2;

update stu set address='男人帮' where sex = '男' order by age desc limit 2;

五、高级删(Delete)

语法:delete from 表名 [where条件][order by 排序] [limit 限制];

删除编号为1的数据:

delete from stu where id = 1;

猜你喜欢

转载自blog.csdn.net/weixin_43851310/article/details/88043435