mysql基础(2)

内容一:DML,插入 insert into

第一种:sql语句 insert  语句进行插入

#插入

#  格式如下:

# insert  into 表名(字段1,字段2,字段3)   values  (一条记录值1,值2,值3),(第二条记录值1,值2,值3);

# # 注意1 字段和值之间 一一对应关系

#   注意2  自动增长约束字段  建议交给Mysql自己管理

insert into student (name,grade)

VALUES

("张三",92),

("李四",98),

("王五",null);

最基本导入  ,只适合插入少量的数据

内容二:单表查询——select

# 1.单表查询(对比excel中的使用)

# 简单查询 (获取表格中的部分列)

# 格式 select  字段1,字段2,字段3 * 全部列  from 表

# 例子 查询 jw01_stu 学号 姓名和年龄

select  id,name,age from jw01_stu;

select  * from jw01_stu;

# 2.分页 查询(获取表格中的部分行记录)===》limit  

#(注意:放在sql语句关键字的最后)

# 格式1: select语句  limit  一个参数n;  # 代表从开始位置显示n行数

# 例子  显示的是5行数据

select  * from jw01_stu limit  5;  #索引下标(从0开始算 0~4)

# 格式2: select语句  limit  参数1,参数2;

# 参数1  显示的开始下标   下标为2  第三条数据

#  参数2  显示的记录数量  2,3 代表从下标2 开始显示 3条数据

select * from jw01_stu limit  2,3;

#3.条件查询(对比excel行列同时获取) ===》where

# 例子  查询18岁年龄的人名字和班级

#格式  select语句  where  条件    limit

select  name,class,age from  jw01_stu where age=18;

# 在条件中可以应用的符号

# 四则运算符号   > < >= <=  =   不等于<> !=

# 逻辑符号   and与  or或  not非

# 集合查询   in  在某个范围内  not in  不在某个范围内

#  范围查询  BETWEEN 开始范围and 结束范围

#例子1  查询年龄大于18岁 小于 20岁的人

select  name,class,age from  jw01_stu where age<=20 and age>=18;

select  name,class,age from  jw01_stu where age between 18 and 20;

#例子2查询 xsb  所属的籍贯是  北京 山东  上海学生姓名

select xm,jg  from xsb where jg='北京' or jg='山东' or jg='上海';

#不在范围

select xm,jg  from xsb where jg  not in ('北京', '山东' ,'上海');

# 4.json解析查询(字符串类型 VARCHAR)

# 什么是json? 类似于python中字典数据结构

# {"name":"张三","age":18,"sex":"男"}

# name age  sex  键===>key==>目录

# 张三 18  男  值===>value==>内容

select score from  jw01_stu;

desc jw01_stu;

# 函数==》具有某一特定作用名字

#  json_keys(字段)  ===》显示 该字段中所有的键

#例子:查询学生学习的科目

select id,json_keys(score) from jw01_stu;

# sql 支持别名as (对显示结果 取新的名字) 可以省略

select id as "学号",json_keys(score) as "学习科目" from jw01_stu;

select id "学号",json_keys(score)  "学习科目" from jw01_stu;

#  json_extract(参数1,参数2) #通过键查找值

# 参数1 : 存放json数据的字段

# 参数2:    $.键   $. 不可以省略

#例子: 查询数据 数学考试成绩

select id,json_extract(score,'$.数学') as "数学成绩" from jw01_stu;

#5.排序查询order BY

# 格式1; 关键字顺序

#  select语句  from  表  where 条件 order by 字段  LIMIT

# 例子1: 查询成绩表中的 cj 升序显示asc 默认

#     cj 降序显示 desc (descend 降序)

#  is not null  非空    is null 空数据

select xh,cj from cjb where cj is not null  order BY cj asc;

select xh,cj from cjb where cj is not null  order BY cj desc;

#例子:排序支持多个字段,多个字段之间 使用逗号隔开

#先根据班级排序 再根据年龄排序

select *  from jw01_stu order by class,age;

#先根据班级降序排序 再根据年龄 降序排序

select *  from jw01_stu order by class desc,age desc;

#6. sql数据预处理(重点)查询

#  空值===》过滤处理

#  数据 缺失值   

#  数据库  缺失值:   空格  null  空值

#  过滤空格     !="打个空格"

# 过滤null    is not NULL

# 过滤空值     !="啥也没有"

# sql中  空值 自动null代替

# 例子 行业不为空 的会员信息

select  *  from  jw02_order where profession is not null;

select  *  from  jw02_order where profession !="";

# 上述方式 粗暴 非缺失值也过滤掉了

# 函数 COALESCE(字段,"遇到空数据替换的值")

select  order_id,memberid ,profession   from jw02_order;

select  order_id,memberid ,COALESCE(profession,"其它")   from jw02_order;

#  7.去掉重复记录

#查看学生的籍贯 关键字  distinct

select  distinct jg  from xsb;

# 使用group by 分组 ===》去掉重复记录 (效率高)

select   jg  from xsb GROUP BY jg;

# 去掉重复记录 订单id和会员id 联合起来重复(去掉相同会员的订单)

select  distinct order_id,memberid    from jw02_order;

select  order_id,memberid    from jw02_order GROUP BY  order_id,memberid;

# 8.分组重点

# 数据类型的转换(数据之间)

# 使用函数

#  cast(字段  as  目标类型)

#  convert(字段,目标类型)  

# 两者效果一样

# 转换  jw02_order 的age字段  字符串类型

select age,cast(age as char(20))  from jw02_order; 

select age,cast(age as char(20)) as "转换后年龄",convert(age,char(20) ) from jw02_order;

以上都是select单表查询重点一定要记也是最基础的,所以大家一定要多记多敲。

一天一章慢慢来一步一个脚印,烂熟于心。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vlepro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值