适合初学者初步了解mysql

这篇教程适合MySQL初学者,介绍了如何使用可视化工具Navicat来连接和管理数据库。文章详细演示了创建数据库、表以及进行增删改查操作的过程,包括完全插入、选择插入和批量插入。此外,还涵盖了更新、删除和查询数据的各种方法,如where条件、order by排序、group by分组等。
摘要由CSDN通过智能技术生成

适合新手初步了解mysql

学会使用可视化

常见mysql可视化工具

https://zhuanlan.zhihu.com/p/406258276
我这里用自己比较常用navicat,所以下面主要用navicat可视化工具进行讲解,你可以自行去选择比较适合自己使用习惯的sql可视化工具

navicat下载

https://www.aliyundrive.com/s/hD1btrGfTNe

连接数据库

连接自己本地的数据库
在这里插入图片描述

创建测试数据库

我们可以创建一个专门用于测试的数据库,点击SQL预览也能查看用sql怎么去创建数据库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建老师表和学生表

老师表

在这里插入图片描述在这里插入图片描述
点击sql预览能看到对应的sql语句
在这里插入图片描述

CREATE TABLE `demo`.`Untitled`  (
  `id` int NOT NULL COMMENT '老师id',
  `name` varchar(255) NULL COMMENT '老师姓名',
  `age` int NULL COMMENT '老师年龄',
  `class` varchar(255) NULL COMMENT '老师班级',
  `student_id` int NULL COMMENT '学生id',
  PRIMARY KEY (`id`)
);

学生表

在这里插入图片描述
在这里插入图片描述

CREATE TABLE `demo`.`Untitled`  (
  `id` int NOT NULL COMMENT 'id',
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生姓名',
  `age` int NULL DEFAULT NULL COMMENT '学生年龄',
  `class` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生班级',
  PRIMARY KEY (`id`)
);

在这里插入图片描述

简单的增删改查

添加信息

1.可以直接进入表里面进行添加(不推荐)
在这里插入图片描述
2. 使用sql语句添加数据
查询->新建查询->选择好自己测试的数据库->写sql语句

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

插入语句知识点

插入语句分为三种

  1. 完全插入:insert into 表名 values(值1,值2,值3,…)
  2. 选择插入:insert into 表名(列名1,列名2,列名,3…) values(值1,值2,值3,…)
  3. 批量插入:insert into 表名 values(值1,值2,值3,…),(值1,值2,值3,…),(值1,值2,值3,…)…

注1:完全插入可以省略列名,但是值必须包含所有字段,批量插入类同
注2:选择插入必须选择需要插入的字段,选择对应字段的值,批量插入类同

插入小练习
  1. 实现完全插入,往学生表里插入一条学生信息为(id:2,姓名:张三,年龄:18,班级:计科二班)
  2. 选择插入,往教师表里插入一条教师信息为(id:2,姓名:李老师,年龄:28,班级:计科一班)
  3. 批量插入,往学生表里插入多条学生信息
    (id:3,姓名:李四,年龄:20,班级:计科二班)
    (id:4,姓名:王五,年龄:18,班级:计科二班)
    (id:5,姓名:赵六,年龄:19,班级:计科二班)
    (id:6,姓名:路人甲,年龄:21,班级:计科二班)
    (id:7,姓名:路人乙,年龄:22,班级:计科二班)
/*1. 实现完全插入,往学生表里插入一条学生信息为(id:2,姓名:张三,年龄:18,班级:计科二班)*/
INSERT INTO student VALUES (2,"张三",18,"计科二班");
/*2. 选择插入,往教师表里插入一条教师信息为(id:2,姓名:李老师,年龄:28,班级:计科一班)*/
INSERT INTO teacher(id,name,age,class) VALUES (2,"李老师",28,"计科二班");
/*
3. 批量插入,往学生表里插入多条学生信息
(id:3,姓名:李四,年龄:20,班级:计科二班)
(id:4,姓名:王五,年龄:18,班级:计科二班)
(id:5,姓名:赵六,年龄:19,班级:计科二班)
(id:6,姓名:路人甲,年龄:21,班级:计科二班)
(id:7,姓名:路人乙,年龄:22,班级:计科二班)
*/
INSERT INTO student VALUES (3,"李四",20,"计科二班"),(4,"王五",18,"计科二班"),(5,"赵六",19,"计科二班"),(6,"路人甲",21,"计科二班"),(7,"路人乙",22,"计科二班");

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改信息

update 表名 set 列名=‘值’ where 列名=‘范围’
where 1=1(全选)
where 1=2(全不选)
注:不加where条件为修改所有指定列的值

修改小练习
  1. 将(id:2,name:张三,age:18,class:计科二班)修改name:路人丙
 #将(id:2,name:张三,age:18,class:计科二班)修改name:路人丙
 UPDATE student SET name="路人丙" WHERE id=2;

在这里插入图片描述
在这里插入图片描述

删除信息

delete from 表名 where 列名=‘范围’
注:不加where条件为删除所有的值

删除小练习
  1. 删除教师表里id=2的数据
 #删除教师表里id=2的数据
 DELETE FROM teacher WHERE id=2;

在这里插入图片描述
在这里插入图片描述

查询

关键字:

1.or:或
2.and:和
3.having:分组后的附加条件
4.group by:分组
5.order by:排序:asc:正序,desc:倒序
6.in:存在于某个值中
7.not in:不存在与某个值中
8.inner join … on链接多表
9.left join … on:左外连接
10.right join … on:右外连接
11.left(right,inner) out join … on:去重
12.count:计数
13.AVG:平均值
14.sum:求和
15.max:最大值
16.min:最小值
17.like ‘关键字%’:取含有关键字的值
18.distinct:去重
19.round:四舍五入
20.where 1=1:全选
21.where 1=2:全不选
22.limit 1,5:从第二行开始显示5条数据
23.top 10:select top 10 * from 表名:显示前十条数据
24.newid():随机

1.选择查询:

select * from 表名 where 范围

2.完全查询:

select * from 表名

3.模糊查询:

select * from 表名 where 列名 like ‘%value%’(查询包含value的值)

4.排序查询(倒序,默认为正序):

select * from 表名 order by 列名 desc

5.计数查询:

select count as 别名 from 表名

6.求和查询:

select sum(field) as 别名 from 表名

7.平均值查询:

select avg(filed) as 别名 from 表名

8.最大值查询:

select max(filed) as 别名 from 表名

9.最小值查询:

select min(filed) as 别名 from 表名

10.四舍五入查询:

select round(min(filed),要保留的小数位数) as 别名 from 表名

11.去重查询:

select distinct 列名 from 表名

12.分组查询:

select * from 表名 group by 列名

13.多条件查询:

select * from 表名 where 列名=‘范围’ and 列名=‘范围’

14.不确定条件查询:

select * from 表名 where 列名=‘范围’ or 列名=‘范围’

15.多条件分组求值查询:

select 列名,min(filed)from 表名 where 列名=‘范围’ group by 列名 having sum(列名)

16.子查询(子查询的结果作为主查询的条件):

select * from 表名 where=(select id from 表名 where 列名=‘范围’)

17.连表查询(内连接):

select * from 表名 inner join 表名 on 主键=外键(必须有主外键)

18.连表查询(内连接)(去重):

select * from 表名 inner out join 表名 on 主键=外键(必须有主外键)

注:内连接只显示相关联的数据

19.连表查询(左外连接)(显示左表的全部信息和右表相关联的信息):

select * from 表名 left join 表名 on 主键=外键(必须有主外键)

20.连表查询(右外连接)(显示右表的全部信息和左表相关联的信息):

select * from 表名 right join 表名 on 主键=外键(必须有主外键)

21.连表查询(全外连接)(显示两个表中的所有记录):

select * from 表名 full/cross join 表名 on 主键=外键(必须有主外键)

22.说明:几个高级查询运算词

A:union(结合两个结果表并消除其中的重复行而派生出另一个表)
例:select name from 表名1 union select name from 表名2(去除name的重复行)
B:except(通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表)
C:intersect(通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表)
注:当这三个运算符与all一起使用时不消除重复行

简单的查询(上面的比较复杂暂时不教,后续再补)

sql查询小练习

  1. 查询出所有计科二班的学生
  2. 查询出大于年龄20的学生
  3. 查询名字包含"路人"的学生
#查询出所有计科二班的学生
SELECT * FROM student WHERE class='计科二班';
#查询出大于年龄20的学生
SELECT * FROM student WHERE age>20;
#查询名字包含"路人"的学生
SELECT * FROM student WHERE name LIKE "%路人%";

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值