• 2-5 mysql常用查询


    1、数据库及安装

    企业中的数据,登录用户的账号信息,商品的信息等等,凡是网站必要的数据,最终都会存储到数据库中,数据库也是软件编写的,关于 mysql 安装,参考《mysql的安装使用》文章

    2、表数据准备

    1)场景

    这里有登录用户的用户表 user_info,有自增 id,username 用户名和password 密码字段,另外一张表是权限表 role_info,记录用户对应的权限关系,这里只分普通用户和VIP两种角色。

    2)创建表结构

    可以把下面 sql 粘贴到 navicat 的查询窗口中去执行。

    # 创建登录用户信息表
    DROP TABLE IF EXISTS `user_info`;
    CREATE TABLE `user_info` (
      `id` tinyint(4) NOT NULL AUTO_INCREMENT,
      `username` char(20) DEFAULT '' COMMENT '用户姓名',
      `password` char(20) DEFAULT NULL COMMENT '登录密码',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
    
    # 创建用户权限信息表
    DROP TABLE IF EXISTS `role_info`;
    CREATE TABLE `role_info` (
      `id` tinyint(4) NOT NULL AUTO_INCREMENT,
      `roleid` char(1) NOT NULL COMMENT '权限值,1代表VIP,0代表普通',
      `user_id` tinyint(4) NOT NULL COMMENT '对应用户表中的id',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    3)插入一些数据

    同样,在查询窗口中执行下面 sql 即可

    # 向用户信息表插入 3 条数据
    INSERT INTO user_info(username, password) 
    VALUES ('zhangsan', '12345'),('lisi', '56789'),('zhaoliu', '78901');
    # 向用户权限信息表插入 3 条数据
    INSERT INTO role_info(roleid, user_id) 
    VALUES ('1', '1'),('0', '2'),('1', '3');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、查询 select

    select * from user_info; #查询所有字段的数据
    
    # 查询 id=2 的用户信息
    select * from user_info where id=2;
    # 查询 id 在(1,3)中的用户信息
    select * from user_info where id in (1,3);
    # 查询 id 为 2 的用户的姓名和密码
    select username,`password` from user_info where id=2;
    
    # 模糊查询姓名以"zha"开头的用户信息
    select * from user_info where username like 'zha%'
    
    # 查询所有 VIP 用户的姓名(自然连接方式)
    select u.username from user_info u, role_info r
    where r.user_id=u.id and r.roleid=1;
    # 查询所有 VIP 用户的姓名(左连接方式)
    select u.username from user_info u left join role_info r 
    on r.user_id=u.id where r.roleid=1;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    这里简要覆盖下常用查询,具体使用区别,还要多查询了解,比如自然连接、左连接的区别。

    4、修改

    下面修改的操作,在执行完 sql 后,记得刷新一下表观察结果。

    1)增加 insert

    对于主键的列值,在插入的时候无需指定具体的值,如下:

    # 单条语句插入, id 会在原基础上自增
    INSERT INTO user_info(username, password) 
    VALUES ('taishang', '97213');
    # 多条数据插入, 参考上面的插入数据
    
    • 1
    • 2
    • 3
    • 4

    2)更新 update

    # 将 用户名为 taishang 的密码修改为 66666
    update user_info set `password`='66666' where id=4
    
    • 1
    • 2

    3)删除 delete

    # 删除姓名为 lisi 的用户信息
    delete from user_info where username='lisi'
    # 删除所数据, 对表结构无影响, DML 级别
    delete from user_info;
    
    # 一次性清空表所有数据, 对表结构没影响, DDL 级别
    truncate table user_info;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    搜索并关注 “taishangcode” 学习同期技能演示视频。

  • 相关阅读:
    宝塔重装注意事项
    【uni-app从入门到实战】get请求、数据缓存、图片上传预览
    【计算机网络】网络层-控制平面(学习笔记)
    第三、四章-嵌入式系统程序设计、嵌入式最小系统
    论文总结:EXPRESSIVE SPEECH-DRIVEN FACIAL ANIMATION WITH CONTROLLABLE EMOTIONS
    Java并发编程实战基础概要
    Linux centos7 bash编程——-求质数和
    〖Python 数据库开发实战 - MySQL篇⑳〗- 数据表的内连接
    【第二章:Golang系列篇】Go基础-环境安装、Go程序初体验
    PDE 中的先验估计是什么意思?
  • 原文地址:https://blog.csdn.net/Water_Sky/article/details/126209315