MySQL数据操作全攻略:DML增删改与DQL高级查询实战指南

知识点4【MySQL的DDL】

DDL:主要管理数据库、表、列等操作。

库→表(二维)→列(一维)

数据表的第一行是 列名称

数据库是由一张或多张表组成

我们先学习在数据库中创建数据表

0、常见的数据类型:

1、创建数据表

create table 表名(字段1 字段1的类型,字段2 字段2的类型,......)

字段名:列名称;

字段一的类型:列的属性

2、查看数据表

show tables;

3、查看表的字段信息

desc table_name;

4、插入新的列

这里我们以向stu表中添加addr列为例

alter table stu add addr text;

5、修改列的类型,并设置长度

alter table stu modify addr varchar (60);

这里补充一下 cast(age as char)表示显示临时转换,将age 的类型临时转换为字符串类型

6、删除表中的列

一次只能删除一列

alter table stu drop addr;

7、表名重命名

rename table stu to new_stu;

知识点5【MySQL的DML】

DML 是对表中的数据进行增,删,改的操作。

insert,update,delete

在sysql中,字符串类型和日期类型 都要用单引号括起来

为什么是单引号呢?我们在将数据库与C语言结合的时候会讲解

1、插入操作 insert into

语法:insert into 表名称 (列名称1,列名称2) values(列值1,列值2);

(列名称1,列名称2) 可以省略,省略的时候需要向每一列都插入数据

2、查询操作 select * from

语法:select * from 表名;

表示查看的是表中的所有列,如果换位num*,**name 就只会查询这两列的数据

注意 select from 不是DML操作 而是DQL操作,这里讲只是为了方便查看数据库插入结果

3、复制表操作

分为两个步骤 1、创建一张新表 2、复制表中的所有列 插入

注意:新表的列名称和列类型 与 旧表 保持一致,否则易出现数据错误

语法:create table stu(num int,name text,age int);

insert into stu select * from new_stu;

4、修改操作 update

update 表名 set 列明1=列值1,列明2=列值2 where 列明=值

5、删除操作 delete

delete from 表名 删除整个表

delete from 表名 where 列名=值;

知识点6【MySQL的DQL】

数据库执行DQL不会改变数据库中的数据 ,而是让数据库发送结果到客户端 。查询返回的结果集是一张虚拟表

数据库的DQL操作指令如下:

1、查询所有列

语法:select * from;

2、查询指定列

语法:select 列名1,列名2,... from 表名;

3、条件查询:where

条件查询就是在查询的时候 给出where的字句,在where字句中可以使用以下运算符和关键字

运算符有:=、!=、<>、<、<=、>、>=、between...and...、in()、is NULL、and、or、not、xor

<>这个是 最新格式的不等于

案例

**案例1:**查询名字为lucy,且年龄小于20的信息

**案例2:**查询学号为102,或者姓名为lisi的信息

**案例3:**查询学号为101,103,104的信息

4、模糊查询之通配符:like

当想要查找 名字中包含带a字母的行 的时候,就需要利用模糊查找。

模糊查找关键字:like

_:任意一个字符

%:任意多个字符 如'张%':以张开头的字符串

案例

案例1:查找名字为3个字母的学生信息;

案例2:查找以字母b开头的学生信息;

同时我们可以测一下以2结尾的;

5、模糊查询之正则表达式

MYSQL同样支持其他正则表达式的匹配,MySQL中使用REGEXP(regular expression)操作符来进行正则表达式的匹配。

我们来逐一用案例来说明他们的功能

案例

1、^ 匹配头部 以b开头;

2、$ 匹配结尾 以y结尾

3、. 匹配任意单个字符 找名字为b?b格式的学生

4、[...] 字符集合 查找名字中含有 lc 的学生

5、[^...] 负字符集合 查找名字中不包含 b r 的学生 注意这里的用法

6、p1|p2|p3 逻辑"或" 查找名字为 bob或lucy 的学生

7、* 匹配零次或多次 名字以b开头,包含o零次或多次的学生

8、+ 匹配一次或多次 名字以b开头,包含o一次以上的学生

9、{n} 匹配确定次数 名字以b开头,包含o两次的学生

10、{n,m} 匹配次数范围 名字以b开头,包含o 1-3次的学生

**11、**名字以b开头,包含o一次以上的学生。

注意:正则表达式 一般用来判断字符串

这里我来解释一下,^$的作用积极重要,如果这两个符号限制了字符串的长度

结束

代码重在练习!

代码重在练习!

代码重在练习!

今天的分享就到此结束了,希望对你有所帮助,如果你喜欢我的分享,请点赞收藏加关注,谢谢大家!!!

相关推荐
小米里的大麦1 分钟前
01 在 CentOS 7 中安装 MySQL
linux·mysql·centos
荒川之神2 分钟前
ORACLE 11G的审计
数据库·oracle
StackNoOverflow8 分钟前
MySQL 的性能调优(第一部分)
数据库·mysql
君穆南9 分钟前
MySQL备份脚本
数据库·mysql·adb
数据库知识分享者小北10 分钟前
告别后端上下文断层!体验用 PolarDB Supabase 助力 AI 原生 IDE 完成 VibeCoding领取试用及多重好礼
数据库·人工智能·阿里云·关系型数据库·polardb·vibecoding
ea4on29 分钟前
看完这篇,我才MySQL索引是这样理解的
数据库
鬼先生_sir33 分钟前
MySQL进阶基础:索引、视图、存储过程与常用函数
数据库·mysql
Nturmoils33 分钟前
实时决策时代,工业物联网需要什么样的数据库?
数据库·后端
Flying pigs~~34 分钟前
RAG前身:基于mysql➕redis➕bm25的传统QA问答系统
数据库·redis·缓存·大模型·qa·rag·prompt提示词
fly spider35 分钟前
MySQL数据存储详解
数据库·mysql