Mysql表基本的增删查改

Mysql表基本的增删查改

  • 引言
  • 一.新增
    • 1.单行数据+全列插入
    • 2.多行数据+全列插入
    • 3.单行数据+指定列插入
    • 4.多行数据+指定列插入
  • 二.查询
    • 1.全列查询
    • 2.指定列查询
    • 3.查询字段为表达式
    • 4.指定别名
    • 5.去重
    • 6.排序
    • 7.条件查询
      • (1)比较运算符
      • (2)逻辑运算符
  • 三.修改
    • 1.修改数据
    • 2.修改表结构
      • 不修改表数据的同时添加列
      • 不修改表数据的同时删除列
  • 四.删除
    • 1.删除特定的几行数据
    • 2.删除整张表数据

引言

所有的演示都基于表Student,Student 的创建语句如下:

	create table if not exists Student(
		id int, 
		name varchar(20),
		math float,
		english float,
		chinese float
	);

一.新增

1.单行数据+全列插入

insert into 表名 values(字段1对应值,字段2对应值,...);

示例:

insert into Student values(9, "root", 99, 99, 99);

插入之后Student表的内容如下:
Mysql表基本的增删查改_第1张图片

2.多行数据+全列插入

insert into 表名 values
(字段1对应值,字段2对应值,...),
(字段1对应值,字段2对应值,...);

行与行之间的数据需要用逗号(,)隔开

示例:

insert into Student values
(1, "张三", 66, 59, 78),
(2, "李四", 88, 91, 57);

插入之后Student表的内容:
Mysql表基本的增删查改_第2张图片

3.单行数据+指定列插入

insert into 表名(字段1,字段2values(字段1对应值,字段2对应值);

示例:

insert into Student(id, name, math, english) values(3, "尼古拉斯赵四", 66, 66);

插入之后Student表的内容:
Mysql表基本的增删查改_第3张图片

4.多行数据+指定列插入

insert into 表名(字段1,字段2values
(字段1对应值,字段2对应值),
(字段1对应值,字段2对应值);

行与行之间的数据需要用逗号(,)隔开
示例:

insert into Student(id, name, math, english) values
(4, "莱昂纳多傲天", 99, 67),
(5, "施瓦辛格张大三", 88, 88); 

插入之后Student表的内容:
Mysql表基本的增删查改_第4张图片

二.查询

1.全列查询

select * from Student;

查询结果:
Mysql表基本的增删查改_第5张图片

2.指定列查询

select 字段1, 字段2 from 表名;

示例:

select id, name, math, english from Student;

查询结果:
Mysql表基本的增删查改_第6张图片

3.查询字段为表达式

select 字段1, 字段2, 表达式 from 表名;
  1. 表达式不含字段
    示例:
select id, name, 1024 from Student;

查询结果:
Mysql表基本的增删查改_第7张图片

  1. 表达式包含一个字段
    示例:
select id, name, math + 10 from Student;

查询结果:
Mysql表基本的增删查改_第8张图片
3. 表达式包含多个字段
示例:

select id, name, math + english + chinese from Student;

查询结果:
Mysql表基本的增删查改_第9张图片

4.指定别名

为查询结果的指定别名作为独立的一列进行显示

select 表达式 [as] 别名 from 表名;

as可以省略
示例:

select id, name, math + english + chinese as total from Student;

查询结果:
Mysql表基本的增删查改_第10张图片

5.去重

使用distinct关键字对某列数据去除重复内容

select distinct 列名 from 表名;

示例:

select distinct math from Student;

查询结果对比:
Mysql表基本的增删查改_第11张图片

6.排序

asc:按照升序(从小到大)排列
desc:按照降序(从大到小)排列

select 字段1, 字段2, ... from 表明 where 条件 order by 字段名 asc/desc;

排序规则:

  1. 如果不指定排序方式,默认按照升序排列;
  2. NULL数据的值比任何数据都小,按照升序排列排在最上面,按照降序排列排在最下面;
  3. 可以使用表达式的别名进行排序;
  4. 多个字段排序的优先级随书写顺序;

示例1:
不指定排序方式,按照升序排列

select math from Student order by math;

查询结果:
Mysql表基本的增删查改_第12张图片
示例2:
NULL值的排序

select id, name, chinese from Student order by chinese;

查询结果:
Mysql表基本的增删查改_第13张图片
示例3:
使用表达式的别名进行排序

select *, math + chinese + english as total from Student order by total;

查询结果:
Mysql表基本的增删查改_第14张图片
示例4:
多个字段排序的优先级随书写顺序

select * from Student order by math desc, english, chinese;

先按照math进行降序排列,如果math值相同,按照english进行升序排列,如果english值相同,按照chinese进行升序排列
查询结果:
Mysql表基本的增删查改_第15张图片

7.条件查询

通过where关键字连接查询条件

(1)比较运算符

运算符 说明
>、>=、<、<= 大于、大于等于、小于、小于等于
= 等于, NULL值的比较不安全
<=> 等于, NULL值的比较是安全的
!=、<> 不等于
between x and y 范围匹配,字段值大于等于x,并且小于等于y
in(字段值1, 字段值2, ...) 如果在选项中,返回true
is null 判断是不是NULL值,是则返回true
is not null 判断是不是非NULL值,是则返回true
like 模糊匹配 %表示任意多个字符(包括0个字符), _表示任意一个字符

示例1:

select * from Student where math between 80 and 100;

查询结果:
Mysql表基本的增删查改_第16张图片
示例2:

select * from Student 
where name in("张三", "李四", "王麻子");

查询结果:
Mysql表基本的增删查改_第17张图片
示例3:

select * from Student where chinese is null;

查询结果:
Mysql表基本的增删查改_第18张图片
示例4:

select * from Student where chinese is not null;

查询结果:
Mysql表基本的增删查改_第19张图片
示例5:

select * from Student where name like "%四";

查询结果:
Mysql表基本的增删查改_第20张图片
示例6:

select * from Student where name like "张_";

查询结果:
Mysql表基本的增删查改_第21张图片

(2)逻辑运算符

运算符 说明
and 所有条件全为真,结果为真
or 所有条件全为假,结果为假
not 条件为真,结果为假;条件为假,结果为真
优先级:not > and > or

示例1:

select * from Student where math > 80 and english > 80;

查询结果:
Mysql表基本的增删查改_第22张图片

示例2:

select * from Student 
where not math > 90 and english > 80;

not的优先级高于and,先执行not运算,所以最后的条件是math <= 90 并且 english > 80;
查询结果:
Mysql表基本的增删查改_第23张图片

三.修改

1.修改数据

update 表名 set 字段1 = 字段1新值, 字段2 = 字段2新值
where 条件;

示例1:

update Student set chinese = 44 
where name = "尼古拉斯赵四";

执行过程:
Mysql表基本的增删查改_第24张图片
Mysql表基本的增删查改_第25张图片
示例2:

update Student set math = 100, english = english + 1, 
chinese = 100 where name = "root";

执行过程:
Mysql表基本的增删查改_第26张图片
Mysql表基本的增删查改_第27张图片

2.修改表结构

不修改表数据的同时添加列

ALTER TABLE 表名 ADD 列名 数据类型;

不修改表数据的同时删除列

ALTER TABLE test01 DROP COLUMN 列名;

四.删除

1.删除特定的几行数据

delete from 表名 where 条件;

示例:

delete from Student where math > 70;

执行过程:
Mysql表基本的增删查改_第28张图片
Mysql表基本的增删查改_第29张图片

2.删除整张表数据

delete from 表名;

示例:

delete from Student;

执行过程:
Mysql表基本的增删查改_第30张图片

你可能感兴趣的:(数据库,mysql,数据库)