MySQL的基本操作

目录

一、数据库整体操作

1.数据库

1.1创建:

1.2显示:

1.3删除

2.数据表

2.1创建

2.2显示

2.3删除

二、表中数据的增删查改(CURD)

[1.增(insert into ...values)](#1.增(insert into ...values))

[2.查(select ... from)](#2.查(select ... from))

2.1全列查询

2.2条件查询(where)

2.3分页查询(limit)

用法一:

用法二:

用法三

3.改(update...set)

3.删(delete)


++注:代码关键字均以小写方式呈现,****[]****代表可加,也可不加。++

一、数据库整体操作

1.数据库

1.1创建:

create database [if not exists] 数据库名 [character set utf8mb4];

方框只是标识,不是代码关键字,可加可不加,如果加入if not exists

存在这个数据库,不会报错。

character set utf8mb4 是用来规定数据库的字符集的,一般使用utf8在中国。

但带MySQL中不能直接支持utf8这套字符集,不过它提供了一个方法可以支持,也就是utf8mb4.

1.2显示:

show databases;

1.3删除

drop database 数据库名;

2.数据表

2.1创建

创建一个表之前,要先创建一个数据库,然后选中(use)这个数据库:

use 数据库名;

表的创建:

create table 表名称(数据名 类型 , 数据名 类型 .......);

MySQL数据类型详解:【MySQL中的基本数据类型 - CSDN 】

在创建表时,可一个字段增加注释(单引号,双引号都可以):

comment '注释'

2.2显示

desc 表的名字;

desc是descrip(形容,修饰)的缩写

如果还要显示刚才增加的注释,还可以这样:

show full columns from 表名;

如果要显示一个数据库中含有那些表可以这样做:

show tables;

2.3修改(很少用,但也要了解)

修改表的操作实际上是很少发生的,而且本身这个操作也非常危险。

这部分内容可以当做一个字典,收藏起来,偶尔用到的话,回来看一下就会了,很简单。

对数据表的修改一般都是使用关键字"alter":

2.4删除

drop table [if exists] 表名;


二、表中数据的增删查改(CURD)

CRUD : Create(增), Retrieve(查),Update(改),Delete(删)

注:

下面的这些操作会创建临时表,不会对数据库中的数据进行修改。

1.增(insert into ...values)

insert into 表名 values(数据1,数据2,.....);

数据插入的类型和顺序一定要和先前定义好的字段匹配。

也可以批量插入

建议批量插入,因为每一次操作数据库,都是客户端和服务器直接的交互,网络开销会很大,如果频繁收取和发送信息。

insert into 表名 values(数据1,数据2,.....),(数据1,数据2,.....),....;

也可以只插入某几个字段,其他字段不插入,但是没有插入的数据默认为null

insert into student(字段1,字段2,...) values(数据1,数据2),(数据1,数据2),....;

英语和数学默认为null:

2.查(select ... from)

2.1全列查询

select * from 表名

*是通配符,代表查询所有列。

也可以只查询某几列:

select 字段名,字段名,... from 表名;

查询时也可以对列名进行重命名(不会修改数据库中的数据):

select 字段1 [as] 新名字,字段二 [as] 新名字,... from 表名;

注释:

as关键字(改名字)的使用包括但不限于全列查询,只是把他放到了这一小节来讲。

2.2条件查询(where)

可以设置查询条件:

select ... from 表名 where 条件;

例:

条件只要是一个表达式就可以,运算符不局限于'<''>':

|-------------------|------------------------------------------|
| 运算符 | 说明 |
| < ,<=, >, >= | 小于,小于等于,大于,大于等于 |
| = | 等于(null不安全表格后面具体解释 |
| <=> | 等于(null安全) |
| !=, <> | 不等于 |
| between A0 and A1 | 范围匹配,[A0, A1],如果 A0 <= 值 <= A1,返回 真 |
| in (OPTION, ...) | 如果是 OPTION 中的任意一个,返回 真 |
| is null | 是null |
| is not null | 不是null |
| like | 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字 符 |
| and | 并且:和C语言中的&&一样(MySQL也支持使用&&,不过推荐用and) |
| or | 或者:和C语言中的||一样(MySQL也支持使用||,不过推荐用or) |
| not | 取反:和C语言中的!一样(MySQL也支持使用!,不过推荐用not) |

以上运算符必须和where搭配来使用。

null不安全,如图:

老六的数学成绩是null

使用'='来查询数学成绩为null的学生会怎么样?

有点反常识,没有找到!这就是等号(=)的null不安全

对于'<=>'则不同:

<=>能够查询得到值为null的数据,这就是null安全

注:

条件查询可以和其他查询方式搭配使用!

2.3分页查询(limit)

用法一:

从 0 开始,筛选 s 条结果

select ... from 表名 [where...] [order by...] limit S

S是要筛选出的行数

举例子,如图:

我们想从第五个人,也就是李四开始查询学生,那么可以:

注意:行号,是从0开始算的!

用法二:

从 s 开始,筛选 n 条结果

select .... from 表名 [where...] [order by...] limit s,n;

用法三

从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用

select ... from 表名 [where...] [order by...] limit n offset s;

如图为例:

3.改(update...set)

update 表名 set 列名=要更改的值 [where...] [order by...] [limit...];

注意:MySQL中不支持update和offset连用!

如图:​​​​​​

把老六的语文成绩改成83,英语成绩改成33:

把总成绩最低的同学的语文成绩加10分:

注意:order by默认排列升序,如果要排列降序使用 order by desc

desc是下降(descend)的缩写,不要和desc*ribe(查看表的属性字段)搞混*

3.删(delete)

注意:

delete不同于上面的操作,它会真实删除数据库中的数据,操作一定要谨慎,不然进入按分钟计费的阶段了,

这可得不偿失!

delete from 表名 [where...] [order by...] [limit...]

++如果表名后面不存在任何查找条件,那么会把表中所有数据删除,但是这个表仍然存在,变成一个空表。++

如果没有where等条件,会直接把表中的所有数据删除:

相关推荐
JH307331 分钟前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
蓝染-惣右介32 分钟前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
冷心笑看丽美人34 分钟前
Spring框架特性及包下载(Java EE 学习笔记04)
数据库
武子康2 小时前
Java-07 深入浅出 MyBatis - 一对多模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据库·sql·mybatis·springboot
代码吐槽菌2 小时前
基于SSM的毕业论文管理系统【附源码】
java·开发语言·数据库·后端·ssm
路有瑶台2 小时前
MySQL数据库学习(持续更新ing)
数据库·学习·mysql
数字扫地僧2 小时前
WebLogic 版本升级的注意事项与流程
数据库
lwprain3 小时前
常用docker应用部署,wordpress、mysql、tomcat、nginx、redis
mysql·docker·tomcat
Viktor_Ye3 小时前
高效集成易快报与金蝶应付单的方案
java·前端·数据库
努力算法的小明3 小时前
SQL 复杂查询
数据库·sql