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

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

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

结束

代码重在练习!

代码重在练习!

代码重在练习!

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

相关推荐
全栈前端老曹9 分钟前
【MongoDB】安全与权限管理 —— 用户认证、角色权限、SSL 加密
前端·javascript·数据库·安全·mongodb·nosql·ssl
怕孤单的草丛28 分钟前
缓存管理面临的主要问题
java·数据库·缓存
我会尽全力 乐观而坚强1 小时前
MySQL零基础入门(二)
数据库·mysql·adb
kali-Myon2 小时前
某校园门禁系统高危 SQL 注入漏洞挖掘复盘
数据库·sql·安全·web安全
程序员在囧途3 小时前
likeadmin-api API 中转站怎么做统一报价?从 /pricing、/user/balance 到 task_id 回执的落地方法
运维·服务器·数据库·likeadmin-api·api中转站·token计费
龙石数据4 小时前
MySQL 全量同步到 Hive 怎么做?三步配置教程
数据库·hive·mysql·数据治理·数据中台
程序员在囧途5 小时前
likeadmin-api API 算力超市怎么做供应商切换?统一鉴权、task_id 和 callback_url 才能稳交付
java·服务器·数据库·开放api·likeadmin-api·api算力超市
数据工匠老o5 小时前
连接池配置实战——从“连不上“到“连太多“的完整排查指南
数据库
一只专注api接口开发的技术猿6 小时前
电商评论自动化监控与情感数据分析完整落地教程(附可直接运行 Python 代码)
大数据·数据库·python·数据分析·自动化
hh真是个慢性子6 小时前
GaussDB Inside 2.23.01.280 集中式一主一备安装
数据库·database·gaussdb·国产数据库·高斯