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

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

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

结束

代码重在练习!

代码重在练习!

代码重在练习!

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

相关推荐
I_Scholar1 小时前
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz的下载安装和使用
linux·mysql
陆少枫2 小时前
MySQL基础关键_005_DQL(四)
数据库·mysql
佩奇的技术笔记3 小时前
Java学习手册:关系型数据库基础
java·数据库·学习
计算机毕设指导64 小时前
基于Springboot旅游网站系统【附源码】
java·开发语言·spring boot·后端·mysql·spring·旅游
Yan-英杰4 小时前
npm error code CERT_HAS_EXPIRED
服务器·前端·数据库·人工智能·mysql·npm·node.js
MindibniM4 小时前
二种MVCC对比分析
数据库·框架·mvcc
涤生大数据4 小时前
海量数据存储与分析:HBase vs ClickHouse vs Doris 三大数据库优劣对比指南
数据库·clickhouse·hbase
shenyan~4 小时前
关于Python:7. Python数据库操作
数据库
麓殇⊙5 小时前
MySQL--索引入门
android·数据库·mysql