目录
1.表的查询
1.表的查询:
1.1创建表:
语法: create table 表名(
字段 类型 约束,
字段 类型 约束,
...
字段 类型 约束
);
1.2 单行数据+全行插入:
🌰 表的字段都插入数据:
insert into student values(100, 1000, '唐三藏', null);
1.3 多行数据 + 指定列插入:
🌰 插入多行数据, 但是是指定字段进行插入:
insert into students(id, sn, name) values(102, 1002, '曹孟德');
1.4 插入是否更新:
由于主键冲突或者唯一键冲突, 选择性进行同步更新的方式.
语法: insert into 表名(字段, 字段...) values(数据, 数据...) on duplicate key update 字段=数据, 字段=数据 ... ;
1.5 替换表数据:
语法: replace into b表名(字段,字段...) values(数据,数据...);
1.6 全列查询和指定列查询:
全列查询:
语法: select * from 表名;
⭐ 一般不建议全列查询, 如果数据很多, 查询效率就非常低下.
指定列查询:
语法: select 字段 字段... from 表名;
⭐select查询的内容就是表达式, 可以是包含字段的也可以不包含.
(1) 查询结构指定别名:
(2) 结果去重:
关键字: distinct;
1.7 where条件:
(1) 比较运算符:
(2)逻辑运算符:(分别相当于且或非)
AND: OR: NOT:
(3)🌰 英语不及格的同学及英语成绩 ( < 60 )
select name,english from exam_result where english<60;
语文成绩在 [80, 90] 分的同学及语文成绩
数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
姓孙的同学 及 孙某同学
⭐ %匹配多个字符; _匹配一个字符;
语文成绩好于英语成绩的同学
总分在 200 分以下的同学
⭐where是无法使用重命名的字段进行查询.
语文成绩 > 80 并且不姓孙的同学
孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80
1.8 null的查询:
select null=null null=1 null=0;
1.9 结果排序:
语法: select 字段 from 表名 order by 字段 [desc/asc];
同学及数学成绩,按数学成绩升序显示:
同学及 qq 号,按 qq 号排序显示:
查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示:
查询同学及总分,由高到低:
⭐order by支持重命名查找.
查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示:
1.10 筛选分页结果:
语法: select 字段 from 表名 order by 字段 m offset n;
表示从m页开始筛选n个数据.
1.11 update:
语法: update 表名 set 修改数据 where 字段属性;
将孙悟空同学的数学成绩变更为 80 分
将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分:
将总成绩倒数前三的 3 位同学的数学成绩加上 30 分:
将所有同学的语文成绩更新为原来的 2 倍:
1.12 delete:
语法: delete from 表名 where 字段数据;
删除整张表:
语法: delete from 表名;
1.13 截断表:
语法: truncate table 表名;
作用: 将表数据进行全部删除; 实际MySQL不会对数据进行处理, 不是真正的事物所以没有回滚.而且会重置auto_increment的值.
1.14 插入查询结果:
语法:
🌰删除表中的的重复复记录,重复的数据只能有一份:
(1)先创建一张和原表一样的表;
(2) 将 duplicate_table 的去重数据插入到 no_duplicate_table:
(3) 重命名表:
1.15 聚合函数:
🌰统计班级共有多少同学:
统计班级收集的q q号有多少?
统计本次考试的数学成绩分数个数:
统计数学成绩总分:
统计平均总分:
返回英语最高分:
返回 > 70 分以上的数学最低分:
1.16 group by子句:
载入oracle 9i的经典测试表(后台dd我)
如何显示每个部门的平均工资和最高工资:
显示每个部门的每种岗位的平均工资和最低工资:
显示平均工资低于2000的部门和它的平均工资:
后言: 球球三联, 博主这两天肝肝肝上火啦!!!蟹蟹!!!