MySQL 管理表记录

管理表记录

添加记录 insert into(新添加的记录追加在记录末尾)

格式:

添加一条记录给所有列赋值

insert into 表名 values(字段值列表) ;

添加多条记录给所有列赋值

insert into 表名 values(字段值列表) ,(字段值列表),(字段值列表);

添加一条记录给指定的列赋值

insert into 表名(字段名列表) values(字段值列表) ;

添加多条记录给指定的列赋值

insert into 表名(字段名列表) values(字段值列表),(字段值列表),(字段值列表) ;

例:添加一条记录给指定的列

useradd tom  #创建用户
tail -1 /etc/passwd
#把这条数据添加到我们刚刚的user表里
mysql> insert into db3.user(name,password,uid,gid,comment,homedir,shell)
values
("tom","x",1001,1001,"","/home/tom","/bin/bash");
select * from user where name="tom";

在这里插入图片描述

注意事项:

  • 字段值要与字段类型相匹配
  • 字符类型的字段,需要用 " "号括起来
  • 依次给所有字段赋值时,字段名可以省略
  • 只给部分字段赋值时,必须明确写出对应的字段名称
  • 没有赋值的字段使用默认值或者自增长赋值

查询记录 select

格式:

select 字段名列表 from 表名 [where 条件]

select * from 表名; 显示所有的行和列

条件用来控制行,字段控制显示的列
在这里插入图片描述

更新记录 update(修改记录字段的值)

格式1,批量更新

update 库名.表名

set 字段名=值,字段名=值,字段名=值…;

格式2,条件匹配更新

update 库名.表名

set 字段名=值,字段名=值,字段名=值…

[where 条件表达式] ;

不加条件,修改所有行
在这里插入图片描述

删除记录 delete(以行为单位)

格式:

delete from 库名.表名 [where 条件]

删除与条件匹配的,如果没有条件,删除所有行
在这里插入图片描述

匹配条件(适用于select、update、delete等)

基本匹配条件(适用于select、update、delete等)

  • 数值比较

    • 字段必须是数值类型

      类型比较例子
      =相等id = 3
      >大于uid > 3
      >=大于或等于uid >=3
      <小于uid < 2
      <=小于或等于uid <=2
      !=不等于uid != 3

    在这里插入图片描述

  • 字符比较

    有 = 和 ! =
    在这里插入图片描述

  • 范围匹配

    匹配范围内的任意一个值即可

    类型比较
    in( 值列表)在…里
    not in (值列表)不在…里
    between 数字 and 数字在…之间…
    distinct 字段名去重显示

在这里插入图片描述

在这里插入图片描述

  • 匹配空(null)is null

  • 匹配非空(不是null)not is null

  • 逻辑匹配(多个条件)

    类型用途模式
    or逻辑或条件1 and 条件2 and 条件3
    and逻辑与条件1 or 条件2 or 条件3
    !或者 not逻辑非

    逻辑或 :多个匹配条件,有一个成立即可

    逻辑与 :多个匹配条件,必须同时成立

    逻辑非:取反
    在这里插入图片描述

高级匹配条件(适用于select、update、delete等)

模糊查询 like

用法:

where 字段名 like ‘通配符(表达式)’

_ 表示一个字符

% 表示0-n个字符

select name from user where name like '____';  #名字长度为四个字符
select name from user where name like '_o__';  #名字长度为四个字符,且第二个字符为o
select name from user where name like 'a%';  #以a开头任意字符的名字
select name from user where name like '__%__'; #名字长度至少四个字符

在这里插入图片描述

正则匹配 regexp

用法:

where 字段名 regexp ‘正则表达式’

正则元字符 ^ $ . [] * |

示例:

列出name 以a开头或者以y结尾的记录

select name from user where name regexp ‘^a| y$’ ;
在这里插入图片描述

四则运算

运算操作:

字段必须是数值类型

符号用途例子
+加法uid + gid
-减法uid - gid
*乘法uid * gid
/除法uid / gid
%取余(求模)uid % gid
()提高优先级(uid * gid)/2
alter table db3.user  add age tinyint unsigned default 19 after name;
 select name,2021-age 出生年 ,age from user ;
  select name,uid,gid,(uid+gid)/2 avg from user where name="bin";

在这里插入图片描述

在这里插入图片描述

操作查询结果(对查询后的数据做处理)

聚集函数(MySQL服务内置的对数据做统计的命令)

MySQL内置数据统计函数

  • avg(字段名) #统计字段平均值
  • sum(字段名) #统计字段之和
  • min(字段名) #统计字段最小值
  • max(字段名) #统计字段最大值
  • count(字段名) #统计字段值个数
select max(uid) from user;  #找uid最大的
select max(uid) from user where uid >=10 and uid <=20; #找10-20之间,uid最大值
select count(*) from user;  #统计user表有多少行
select count(name) from user where shell="/bin/bash"; #统计shll为不能登录的人有多少

在这里插入图片描述

查询结果排序

用法:

SQL查询 order by 字段名 [asc | desc];

asc 升序

desc 降序

select name ,uid from  user where uid <=1000 order by  uid desc;

在这里插入图片描述

查询结果分组

用法:

SQL查询 group by 字段名;

select shell from user group by shell;    #按组对shell进行分类
select shell from user where uid <=100 group by shell;
#对uid小于等于100的,按组对shell进行分类

在这里插入图片描述

查询结果过滤

having用法

SQL查询 having 条件表达式;

 select name,uid from user where name is not null having uid=3;
#先查找name不为空,在对查找的结果进行过滤,过滤出uid=3的

在这里插入图片描述

限制查询结果显示行数

用法:

  • SQL查询 limit 数字; #显示查询结果前多少条记录
  • SQL查询 limit 数字1,数字2; #显示指定范围内的查询记录
  • 数字1 起始行(0表示第一行)
  • 数字2 总行数
select * from user limit 2;  #只显示两行
select name,uid from user where id <=10 limit 3;
select name,uid from user where id <=10 limit 2,4;
select name,uid from user where id <=10 limit 0,3; #从第一行开始,打印三行

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值