Mysql操作表记录

Mysql操作表记录

前言

Mysql操作表记录增删改查语法

一、DML操作表(增删改)

1.插入记录(增)

方式一: 插入指定列, ==如果没有把这个列进行列出来, 以null进行自动赋值了

insert into 表(列,列...) values(值,值...);

方式二: 插入所有的列

insert into 表 values(值,值...);

2.更新记录(改)

update 表 set 列 = 值 [where 条件]  //中括号表示条件可有可无 
update 表 set 列  = 值 ,列 = 值,  .... [where 条件]  

3.删除记录

3.1 delete

delete from 表 [ where 条件]  //删除数据用delete,不用truncate
delete from 表     //删除表中所有数据,表中的自增值将会延续自增

3.2

truncate table 表;   //删除表中所有内容,表中的自增值也会恢复初始值

二、DQL操作表中记录(查询)

1.单表查询

1.基本查询语法

select [ * ]  [ 列名,列名 ] [ 列名 as 别名 ..] [  distinct 字段 ] from 表 [ where 条件 ]
//新手建议先看下面 再回来看这个语句 

在这里插入图片描述
选其中一种方式进行执行
2.简单查询
2.1 查询所有的列

select * from 表

2.2查询某张特定的表

  select 列名,列名...   from 表

2.3 去重查询

select distinct 字段名 from 表  

2.4 别名查询

select 列名 as 别名 ,列名 from表  
seect 别名.* from 表 as 别名

2.5运算查询(+ - * / 等)

select pricename ,price +10 from 表 //把商品名,和商品价格+10查询出来

3. 条件查询
select * from 表 where 条件
常用语法介绍:
3.1.between…and… 区间查询

select * from 表  where between  1 and 10   //查询1-10之间

3.2.in(值,值…)

select * from 表 where id in( 1,5,6)  //查询id为 1,5,6的值

3.3.like 模糊查询

select * from 表 where  name like '张%'  --查询姓张的用户, 名字的字数没有限制  % 占0或者n位
select * from 表 where name like  '张_'  --查询姓张的用户 并且名字是两个的字的 _ 占一位

3.4.and 多条件同时满足

select * from 表 where 条件1 and 条件2 ...

3.5.or 任意条件满足

select * from 表 where 条件1 or 条件2 ...

2.排序查询

1.单列排序

select 字段名 from 表名 [where 条件]  order by 字段名 [ASC/DESC] ;  //ASC:升序,默认值; DESC:降序
范列:
select * from student order by id DESC;//以id降序查询所有学生

2.组合排序

select 字段名 from 表名 [where 字段名 = 值 ] order by 字段1 [ASC/DESC] ,字段2 [ASC/DESC]; //同时对多个字段进行排序,如果第1个字段相等,则按第2个字段排序,依次类推
范列:
select * from student order by id DESC ,age DESC //以id降序查询所有学生,如果id相同则用id进行降序排序

3.聚合函数

select 聚合函数(列) from 表名;

聚合函数:
max() 最大值
min() 最小值
sum() 求和
avg() 平均值
count() 统计数量
注意:聚合函数会忽略null值;

4 分组查询

1.分组

select 字段1,字段2...from 表名[where 条件 ] group by 列 [ having  条件 ]
范列:
select sex, count(*) from student group by sex having count(*) >3 ;//根据性别分组,统计每组学生总数>3的

5 分页查询

select  字段  from  表  limit  起始行数,查询的记录条数

3.Mysql 多表查询

1. 连接查询

1.内连接查询
1.1隐式内连接

select ... from 表1,表2 where 外键字段的值 = 主表主键的值 and 条件...;

1.2显示内连接

 select ... from 表1 inner join 表2 on 外键字段的值 = 主表主键的值 [where 条件];  

2.外连接
2.1左外连接

select ...  from 左表 left [ outer ] join 右表 on 外键字段值 =主表主键值[ where 条件 ]

2.2右外连接

select ...  from 右表 right [ outer ] join 左表 on 外键字段值 =主表主键值[ where 条件 ]

2.子查询

1.子查询的结果是一个值:

  select ... from 表名 where 字段 (= > < >= <= <>) (子查询);
  范例:
  SELECT dept.name FROM dept WHERE dept.id IN (SELECT dept_id FROM emp WHERE salary > 5000);
  //先查询大于5000的员工所在的部门id ,再查询在这些部门id中部门的名字
  

2.子查询的结果是单列多行:

 select ... from 表名 where 字段 in (子查询);

3.子查询的结果是多列多行:

 select ... from (子查询) 别名 where 条件;
select ... from (子查询) 别名,表名 别名 where 条件;
 select ... from (子查询) 别名 left join 表名 别名 on 条件;
 select ... from (子查询) 别名 right join 表名 别名 on  条件;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值