SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)

文章目录

  • 新建数据库
    • 新建表
  • 增、删、改、查
    • select 查找
    • insert 添加
    • delete 删除
    • update 修改
    • where 扩展
      • = < > <= >= != <> 比较运算符
      • and or 逻辑运算符
      • between...and... 介于..和..之间
      • in 包含
      • like 模糊查询
      • is null 为空的
  • 查询扩展
    • order by 排序
    • limit start count / count offset start 限制查询
    • 聚合查询
    • group by 分组查询
      • having 分组后筛选
    • 综合练习
  • 多表
    • where 多表查询
    • join on 内、外连接
    • union 属性相同 合表

新建数据库

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第1张图片

新建表

主键:像人的身份证号一样,唯一代表。

右键表->新建 输入内容

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第2张图片

添加数据

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

增、删、改、查

select 查找

select 属性名 form 表名

select name, sex, age from student

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第3张图片

* 查找所有信息

select * from student

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第4张图片

where 筛选符合条件的

select * from student where sex = '男'

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第5张图片

insert 添加

insert into 表名(要添加的属性) value(添加的属性值)

insert into student(name, sex, age, classid) value("小李李","男", 18, 2) 

在这里插入图片描述

delete 删除

delete form 表名 where 删除符合的条件

delete from student where id = 3

表示为 删除id值为3的人信息。

update 修改

update 表名 set 要改的属性 where 筛选需要改的条件

表示为将 id 为 4 的人的姓名改成哈哈,性别改成女,年龄改为 2。

update student set name="哈哈", sex="女", age=2 where id = 4

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第6张图片

where 扩展

可以发现删、改、查、都需要查找目标用到where

= < > <= >= != <> 比较运算符

和上面 = 用法相似
SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第7张图片

and or 逻辑运算符

select * from student where sex="男" and math > 60 or chinese > 60 and sex="女"

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第8张图片

between…and… 介于…和…之间

相当于 >= <=

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第9张图片

in 包含

方便批量操作

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第10张图片

like 模糊查询

需要配合占位符使用,不加占位符与等号没有区别

_代表一位字符
%代表任意位字符(0位也算)

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第11张图片

is null 为空的

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第12张图片

查询扩展

order by 排序

asc 升序 desc 降序

select * from student order by age asc

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第13张图片

limit start count / count offset start 限制查询

select * from student limit 2, 3

聚合查询

sum() avg() count() max() min() 配合分组使用

group by 分组查询

求男女年龄平均值

select sex, sum(age)/count(age), avg(age) from student group by sex

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第14张图片

having 分组后筛选

求男女数学平均分后,只查看男生的。

select sex, avg(math) from student group by sex having sex = "男"

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第15张图片

综合练习

含义:挑选男生,以个人(id)分组,平均分大于60的,以总分降序,只显示前三人,的名字、性别、总分、平均分。
注意书写顺序

select name, sex, sum(math + english+ chinese) 总分, sum(math + english+ chinese) / 3 平均分 from student where sex = "男" group by id having 平均分 > 60 order by 总分 desc limit 0, 3;

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第16张图片

多表

下面例子以如下表操作。

student:

id name sex age address math chinese english class
2 李四 18 保定 90 87 77 1
3 王浩 10 廊坊 66 77 22 1
4 哈哈 2 北京 78 76 55 1
5 杜甫 19 上海 67 72 88 2
6 花花 46 天津 45 34 98 2
7 丽丽 7 河南 56 87 78 2
8 小明 37 河北 98 78 67 2
9 小李 25 邯郸 67 46 56 3
10 小花 28 石家庄 23 65 45 3
11 小王 13 78 45 34 3
12 李华 20 99 56 23 3
13 李玉与 16 45 78 65

class:

cid class_num
1 2301
2 2302
3 2303
4 2304

where 多表查询

如果我们不用 where 而是直接合表,会显示笛卡尔积的结果,显然不是我们需要的。

样例截图未全截,明白意思即可。

select * from class, student 

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第17张图片

我们需要的是班级编号与学生班级编号一一对应的和表结果,可以在where后面加上需要的判断条件来显示。

select * from class, student where class.cid = student.class

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第18张图片

join on 内、外连接

[inner] join 内连接 与 where 用法相似

select * from class join student on class.cid = student.class

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第19张图片

left [outer] join 左外连接

select * from student left join class on class.cid = student.class

可以发现student中班级为空的也展现出来了。

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第20张图片

right [outer] join 右外连接

与左连接相同,左右的区分,就是看书写的顺序而已。
菜鸟教程里的图解,还是很容易理解之间的区别的。

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第21张图片

union 属性相同 合表

将男女筛选出来再合起来。

select * from student where sex="男" 
union 
select * from student where sex="女"

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)_第22张图片

你可能感兴趣的:(数据库,sql,数据库,服务器,mysql)