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一次以上的学生。

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

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

结束

代码重在练习!

代码重在练习!

代码重在练习!

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

相关推荐
YaoYuan93235 分钟前
Ubuntu22.04 中搭建基于 Qemu 的内核(驱动)开发环境
数据库
hans汉斯7 分钟前
【计算机科学与应用】基于多光谱成像与边缘计算的物流安全风险预警模式及系统实现
大数据·数据库·人工智能·设计模式·机器人·边缘计算·论文笔记
叫我龙翔15 分钟前
【MySQL】从零开始了解数据库开发 --- 如何理解事务隔离性
数据库·mysql·数据库开发
你想考研啊37 分钟前
一、redis安装(单机)和使用
前端·数据库·redis
枫叶丹441 分钟前
【Qt开发】多元素类控件(三)-> QTreeWidget
开发语言·数据库·c++·qt
洲覆1 小时前
Redis 驱动适配 Reactor 模式
开发语言·网络·数据库·redis
IDOlaoluo1 小时前
win64_11gR2_client.zip 怎么安装?Oracle 11g 客户端详细安装步骤
数据库·oracle
呆呆小金人1 小时前
SQL入门:别名使用完全指南
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师
缘友一世1 小时前
Redis未授权访问漏洞:从原理到高级利用
数据库·redis·缓存
码农阿豪3 小时前
国产化替代新篇章:金仓数据库如何实现MongoDB平滑迁移
数据库·mongodb