【MySQL】基本的增删查改

目录

对于数据库(DateBase)

对于表(Table)

对于行&列

对于数据库(database)

对于表(table)

对于数据

对于数据库(databases)

对于表(tables)

对于数据

别名

去重 

排序

条件 

分页 

组合使用


 对于数据库的增删查改,我们需要有一个总体的认识,有下面这张图的认识即可。

【MySQL】基本的增删查改_第1张图片


对于数据库(DateBase)

create database 数据库名字;
--database不要写成datebase
--datebase是单数

对于表(Table)

1.先选中要操作的数据库

use 数据库名;

2.添加表

create table 表名 (
列名1 列类型1,
列名2 列类型2,
...);

--注意table是单数
--名字在前,类型在后

对于行&列

增加一行完整数据

insert into 表名 values
(数据1, 数据2, 数据3);
--此时的操作的前提是已经到了一个目标数据库
--数据库中有很多表,需要指定目标表
--value是数据的意思,因为可能添加不止一条数据
--所以这里的values是复数
--添加的数据要和表的类型一一对应

 增加一行不完整数据

insert into 表名 values
(数据1, 数据2, null);
--放空值null前提是该表没有限制不能放空值

 增加多行数据

insert into 表名 values
(对应好的一行数据),
(对应好的一行数据)
......;

【MySQL】基本的增删查改_第2张图片

 指定列插入

insert into 表名(列名1, 列名2...) values
(对应的列数据); 

 依然可以多行插入,语法同上。

通过查询新增

-- 创建学生信息表
create table students (
id int,
name varchar(20),
age int,
sex varchar(2)
);

-- 插入学生信息
insert into students values
(1, '张三', 20, '男'),
(2, '李四', 19, '男'),
(3, '小红', 18, '女'),
(4, '小蓝', 19, '女');

-- 创建用户表
create table users (
name varchar(20),
age int
);

-- 通过查询新增
-- 必要要类型一致才可以
insert into users(name, age) select name, age from students;

【MySQL】基本的增删查改_第3张图片

增加一般指增加数据库中的数据,但是我把数据库,表,数据都放到增加这里,这样对于一个完整的增加流程有了更清楚的认识。同时对与下面的操作我也还是从大到小的方式进行。


对于数据库(database)

drop database 表名;
--与新建数据库一样,关键字变成了drop
--删库要谨慎!!!

【MySQL】基本的增删查改_第4张图片


对于表(table)

drop table 表名;
--删表要谨慎!!!

【MySQL】基本的增删查改_第5张图片


对于数据

删除行数据

delete from 表名 where 条件1, 条件2,...;
--先找到具体的表,在根据想要删除的哪一行具体删除
--想要删除多行在where子句中添加对应条件即可
--where稍后具体详细介绍

这是我们之前创建的students表,现在我们按照id来删除,也可以按照name或者age。 

【MySQL】基本的增删查改_第6张图片

 

【MySQL】基本的增删查改_第7张图片

 删除整个表的数据

delete from 表名;
--删除表中所有数据与删除一张表不一样。
--前者还有表,只是数据为空;后者都没了。

先准备一个表fordelete

【MySQL】基本的增删查改_第8张图片

删除

删除后查看数据


对于基本的增删查改,我们只需要知道数据的 改 即可。

update 表名 set 成员名 = 新的值 条件;
--条件是为了锁定到表中具体的目标修改值
--只要是符合条件的都会被修改

【MySQL】基本的增删查改_第9张图片

 现在我们按照name来修改李四的age为18

【MySQL】基本的增删查改_第10张图片


对于数据库(databases)

show databases;
--这里database是复数,因为不止有一个数据库

【MySQL】基本的增删查改_第11张图片

对于表(tables)

查表的数量

show tables;
--前提已经到了目标数据库

 【MySQL】基本的增删查改_第12张图片

 查表的性质

desc 表名;
--description的缩写
--前提已经到了目标数据库

【MySQL】基本的增删查改_第13张图片

对于数据

select */具体的列名1, 列名2... from 表名;
-- * 是统配符,可以是任何类型,如果查询用  *  将会把所有列的数据查出来
-- 指定具体的列名则会只查询那一列的数据

  全列

【MySQL】基本的增删查改_第14张图片

 具体的某一列

【MySQL】基本的增删查改_第15张图片

多列查询不再演示。


以上为最简单的增删查改,现在将删改查与一些子句结合使用。


别名

SQL 别名用于为 表 或 表中的列 提供临时名称。 

SQL 别名通常用于使 表名 或 列名 更具可读性。 

SQL 一个别名只存在于查询期间。 

select 列名1 as 别名, 列名2...from 表名;
--只演示列名的别名
--别名只是存在于临时表中,没有修改原表

【MySQL】基本的增删查改_第16张图片


去重 

在查询时可以去掉某一列重复的数据。

select distinct 列名 from 表名
--去重的结果同样是在临时表中,不会对原表进行修改

【MySQL】基本的增删查改_第17张图片  -->【MySQL】基本的增删查改_第18张图片 

select distinct 列名1, 列名2...from表名;
--除非这几列在相同的行与行之间有一样的值才会被去重

【MySQL】基本的增删查改_第19张图片


排序

select 列名1, 列名2... from 表名 order by 列名 asc/desc;

--aes Ascending order 升序  如果要排可以省略asc,因为默认排升序
--desc Descending order 降序   要排降序不可省略desc

--排序同样是在临时表中

--如果按照排列的列名有多个,中间用逗号隔开,从左往右的顺序排
--比如按照第一个列名排完有相同的数据,就按照第二个的规则排,依次类推

--如果都是相同的数据,那排出来的就是随机的

一个列名规则 

【MySQL】基本的增删查改_第20张图片

 两个列名规则

【MySQL】基本的增删查改_第21张图片


条件 

where条件子句中一定要用到运算符

比较运算符

运算符 说明
> >= < <=  大于 大于等于 小于 小于等于
=

在where子句中表示相等的意思

对于null:如果null = null 返回null,而不是true

<=>

表示相等

对于null:如果null = null 返回true

!=  <> 两个都表示不等于
between a and b 表示[a,b],相当于 value >= a && value <= b
in(操作数1, 操作数2...) 有任一操作数则返回true
is null 是null
is not null 不是null
like

模糊匹配

%表示任意个字符

_表示一个字符

逻辑运算符

运算符
说明
and 多个条件必须都为 true,结果才是 true  相当于  &&
or

任意一个条件为 true, 结果为 true

相当于 ||

not 条件为 true,结果为 false  相当于 !

 where中不能使用别名,可以使用表达式

and优先级大于or


分页 

limit n;
--从0开始查n条数据

limit s, n;
--从s开始,查n条数据

limit n offset s
--同第二种

--建议使用第二种

【MySQL】基本的增删查改_第22张图片


组合使用

组合使用可以按照需求任意组合使用,但要有前后顺序

delete from 表名 where 条件1, 条件2..., order by 列名1, 列名2..., limit n/s, n;

update 表名 set 列名1 = 值, 列名2 = 值..., where 条件, order by 列名1, 列名2... asc/desc, limit n/s, n;

select */列名1, 列名2... distinct from 表名, where 条件1, 条件2..., order by.. ,limit...;

有什么错误评论区指出,希望可以帮到你。

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