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等条件,会直接把表中的所有数据删除:

相关推荐
付出不多15 分钟前
Linux——mysql主从复制与读写分离
数据库·mysql
初次见面我叫泰隆16 分钟前
MySQL——1、数据库基础
数据库·adb
Chasing__Dreams21 分钟前
Redis--基础知识点--26--过期删除策略 与 淘汰策略
数据库·redis·缓存
源码云商29 分钟前
【带文档】网上点餐系统 springboot + vue 全栈项目实战(源码+数据库+万字说明文档)
数据库·vue.js·spring boot
源远流长jerry1 小时前
MySQL的缓存策略
数据库·mysql·缓存
纯纯沙口1 小时前
Qt—用SQLite实现简单的注册登录界面
数据库·sqlite
初次见面我叫泰隆1 小时前
MySQL——3、数据类型
数据库·mysql
zxrhhm2 小时前
Oracle 中的虚拟列Virtual Columns和PostgreSQL Generated Columns生成列
postgresql·oracle·vr
一叶屋檐2 小时前
Neo4j 图书馆借阅系统知识图谱设计
服务器·数据库·cypher
好吃的肘子3 小时前
MongoDB 应用实战
大数据·开发语言·数据库·算法·mongodb·全文检索