开始MySQL之路—— DDL语法、DML语法、DQL语法基本操作详解
DDL语法
DDL(Data Definition Language) 数据定义语言,该语言部分包括以下内容。

对数据库的常用操作
对表结构的常用操作
修改表结构
对数据库的常用操作
1: 查看当前所有的数据库
show databases;
2:创建数据库
create database if not exists 数据库名称;
create database 数据库名称;
3:选择使用哪一个数据库
use 数据库名称;
4:删除数据库
drop database 数据库名称;
drop database if exists 数据库名称;
5:修改数据库编码
alter database school character set utf8;
对表结构的常用操作-创建表
1:创建表格式
create table [if not exists] 表名(
字段1 类型[(宽度)] [约束条件] [comment '字段说明'],
字段2 类型[(宽度)] [约束条件] [comment '字段说明'],
字段3 类型[(宽度)] [约束条件] [comment '字段说明'],
)[表的一些设置];
创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。
2:数据类型
数据类型是指在创建表的时候为表中字段指定数据类型的,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。
数值类型
日期和时间类型
字符串类型
3:数值类型

create table if not exists student(
-- 无符号 没有负数
sid int unsigned,
name varchar(20),
gender varchar(20),
age int,
birthday date,
address varchar(20)
);
-
字符串类型

-
日期类型
对表结构的其它操作

1:查看当前数据库的所有表
show tables ;
2:查看数据表的创建语句
show create table 数据表名;
3:查看表结构
desc 数据表名;
4:删除表
drop table 数据表表名;
5:修改表结构格式
语法格式
alter table 表名 add 列名 类型(长度) 【约束】;
例子:
为student表添加一个字段为:系别dept类型为department
alter table student add column dept varchar(20);
6:修改列名和类型
语法格式
修改列名和表名,alter table 表名 change 旧列名 新列名 类型(长度) [约束]
为student表中的dept字段更名为department varchar(30)
alter table student change dept department varchar(30);
7:修改表删除列
语法格式:
alter table 表名 drop 列名;
例如:
# 删除student表中department这列
alter table student drop department;
8:修改表名
语法格式:
rename table 表名 to 新表名;
例如:
# 将表student改名为stu
rename table student to stu
DML语法基本介绍
DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中标的数据几列进行更新。
关键字:
-
插入Insert
-
删除delete
-
更新update
数据插入
-
语法格式
insert into 表(列名1,列表2,列表3...) values(值1,值2,值3...);// 向表中插入某些
insert into 表 values(值1,值2,值3...);// 向表中插入所有列
例子:
向表中插入所有列
insert into student(sid, name, gender, age, birthday, address,department)
values (1,'tom','男',18,'2000-01-01','郑州','销售部');
insert into student values (2,'jerry','女',28,'2001-01-01','北京','研发部');一次性插入多条数据
insert into student(sid, name, gender, age, birthday, address,department)
values (3,'tom1','男',18,'2000-01-01','郑州','销售部'),(4,'corky1','女',18,'2001-01-01','北京','法务部');
insert into student values (5,'jerry','女',28,'2001-01-01','北京','研发部'),(6,'yi','男',39,'2002-01-01','上海','研发部');
数据修改
- 语法格式
update 表名 set 字段名=值,字段名=值...;
update 表名 set 字段名=值,字段名=值... where 条件;
例子:
将所有学生的地址修改为河南
update student set address='河南';
将id为1的学生的地址修改为河南
update student set address='河南' where id=1;
将id为2的学生的地址修改为北京,成绩修成绩修改为100
update student set address='北京',score=100 where id=2
数据删除
- 语法格式:
delete from 表名[where 条件];
truncate table 表名 或者truncate 表名
例子:
1:删除sid为3的学生数据
delete from student where sid=3;
2: 删除表所有数据
delete from student;
3:清空表数据
truncate table student;
truncate student;
注意:delete和truncate原理不同,delete只删除内容,而truncate类似于drop table,可以理解为是将整个表删除,然后再创建该表。
实例代码


DQL语法概述
-
概念
-
数据库管理系统一个重要功能就是数据查询,数据查询不应只是简单返回数据库中存储的数据,还应该根据需要对数据库进行筛选以及确定数据以什么样的格式显示。
-
MySQL提供了功能强大,灵活的语句来实现这些操作。
-
MySQL数据库使用select语句来查询数据。
-
-
应用

基本查询
-
语法格式
select
[all|distinct]
<目标列的表达式1> [别名],
<目标列的表达式2> [别名]...
from <表名或视图名> [列名],<表名或视图名> [别名]...
[where<条件表达式>]
[group by<列名>
[having<条件表达式>]]
[order by<列名>[asc|desc]]
[limit<数字或者列表>];
-
简化版语法
select *| 列名 from 表 where 条件
-
数据准备
创建数据库和表
-- 创建数据库
create database if not exist mydb2;
use mydb2;
-- 创建商品表:
create table product(
pid int primary key auto_increment, -- 商品编号
pname varchar(20) not null , -- 商品名字
price double, -- 商品价格
category_id varchar(20) -- 商品所属分类
);
-
添加数据
insert into product values(null,'海尔洗衣机',5000,'c001');
insert into product values(null,'美的冰箱',3000,'c001');
insert into product values(null,'格力空调',5000,'c001');
insert into product values(null,'九阳电饭煲',200,'c001');
insert into product values(null,'啄木鸟衬衣',300,'c002');
insert into product values(null,'恒源祥西裤',800,'c002');
insert into product values(null,'花花公子夹克',440,'c002');
insert into product values(null,'劲霸休闲裤',266,'c002');
insert into product values(null,'海澜之家卫衣',180,'c002');
insert into product values(null,'杰克琼斯运动裤',430,'c002');
insert into product values(null,'兰蔻面霜',300,'c003');
insert into product values(null,'雅诗兰黛精华水',200,'c003');
insert into product values(null,'香奈儿香水',350,'c003');
insert into product values(null,'SK-II神仙水',350,'c003');
insert into product values(null,'资生堂粉底液',180,'c003');
insert into product values(null,'老北京方便面',56,'c004');
insert into product values(null,'良品铺子海带丝',17,'c004');
insert into product values(null,'三只松鼠坚果',88,null);
数据准备
1:创建数据库
create database if not exists mydb2;
use mydb2;
2:创建商品表
create table if not exists product(
pid int primary key auto_increment,-- 商品编号
pname varchar(20) ,-- 商品名称
price double, -- 商品价格
category_id int -- 商品所属分类
);alter table product modify category_id varchar(20);
3:添加数据
insert into product values(null,'海尔洗衣机',5000,'c001');
insert into product values(null,'美的冰箱',3000,'c001');
insert into product values(null,'格力空调',5000,'c001');
insert into product values(null,'九阳电饭煲',200,'c001');
insert into product values(null,'啄木鸟衬衣',300,'c002');
insert into product values(null,'恒源祥西裤',800,'c002');
insert into product values(null,'花花公子夹克',440,'c002');
insert into product values(null,'劲霸休闲裤',266,'c002');
insert into product values(null,'海澜之家卫衣',180,'c002');
insert into product values(null,'杰克琼斯运动裤',430,'c002');
insert into product values(null,'兰蔻面霜',300,'c003');
insert into product values(null,'雅诗兰黛精华水',200,'c003');
insert into product values(null,'香奈儿香水',350,'c003');
insert into product values(null,'SK-II神仙水',350,'c003');
insert into product values(null,'资生堂粉底液',180,'c003');
insert into product values(null,'老北京方便面',56,'c004');
insert into product values(null,'良品铺子海带丝',17,'c004');
insert into product values(null,'三只松鼠坚果',88,null);
-
简单查询操作
查询所有的商品
select * from product;
select pid,pname,price,category_id from product;
查询商品名和商品价格
select price,pname from product;
别名查询,使用的关键字是as,(as可以省略的)
表别名
select * from product as p;
select * from product p;
select p.id,u.id from product p,user u;列表名
select pname as 商品名,price as 商品价格 from product;
去掉重复值
select distinct price from product;
每一行和每一行都不一样
select distinct * from product;
查询结果是表达式(运算查询):将所有商品加价10元进行展示
select pname,price+10 as 新价格,price from product;
运算符

-
算数运算符

-
比较运算符

-
逻辑运算符

-
位运算符

位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。
①:算数运算符

算数运算符
select 6+2;
select 6-2;
select 6*2;
select 6/2;
select 6 div 2;
select 6 mod 2;将所有商品价格+10元
select price+10 as 价格 from product;
将所有商品的价格上调10%
select price*(1+0.1) as 价格 from product;
条件查询

算数运算符

代码实现:
查询商品名称为“海尔洗衣机”的商品所有信息
select * from product where pname='海尔洗衣机';
查询价格为800商品
select * from product where price=800;查询价格不是800商品
select * from product where price <>800;
select * from product where price!=800;
select * from product where not (price=800);查询商品价格大于等于60元的所有商品信息
select * from product where price >=60;查询商品价格在200到1000之间所有商品
select * from product where price between 200 and 1000;
select * from product where price >= 200 and price<= 1000;
select * from product where price >= 200 && price<= 1000;查询商品价格在200或800的所有商品
select * from product where price=200 or price=800;
select * from product where price=200 || price=800;
select * from product where price in(200,800);查询含有'裤'字的所有商品
select * from product where pname like '%裤%'; -- %任意字符查询以‘海’开头的所有商品
select * from product where pname like '海%';
查询第二个字为'蔻'的所有商品
select * from product where pname like '_蔻%';
查询category_id为null的商品
select * from product where category_id is null;
查询category_id不为null的商品
select * from product where category_id is not null;使用Least求取最小值
select LEAST(10,20,30) as small_number;
select least(10,null,30); -- 如果求最小值有一个null值,不会比较直接null使用greatest求最大值
select greatest(10,20,30) as big_number ;
select greatest(10,null,30) as big_number ;
如果求最大值有一个null值,不会比较直接null
排序查询



聚合查询






聚合函数--null值得处理


分组查询








分页查询

Insert into Select

相关文章:
开始MySQL之路—— DDL语法、DML语法、DQL语法基本操作详解
DDL语法 DDL(Data Definition Language) 数据定义语言,该语言部分包括以下内容。 对数据库的常用操作 对表结构的常用操作 修改表结构 对数据库的常用操作 1: 查看当前所有的数据库 show databases; 2:创建数据库 create dat…...
Java“牵手”天猫整店商品API接口数据,通过店铺ID获取整店商品详情数据,天猫店铺所有商品API申请指南
天猫平台店铺所有商品数据接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取天猫整店的商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、价格信息等详细信息 。 获取店铺所有商品接口API是一种用于获取电商平台上商品详…...
用AI重构的钉钉,“钱”路在何方?
点击关注 文|郝 鑫,编|刘雨琦 钉钉2023年生态大会,离开了两年的无招,遇到了单飞9天的钉钉。 “做小钉钉、做好钉钉、做酷钉钉”,无招重申了钉钉的方向。 无招提到的三点,再加上“高质量增长”…...
批量根据excel数据绘制柱状图
要批量根据Excel数据绘制柱状图,可以使用Python中的pandas和matplotlib库来实现。下面是示例代码: import pandas as pd import matplotlib.pyplot as plt import os def draw_bar_chart_from_excel(file_path, x_column, y_column, output_folder): …...
浅谈 Java 中的 Lambda 表达式
更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 Lambda 表达式是一种匿名函数,它可以作为参数传递给方法或存储在变量中。在 Java8 中,它和函数式接口一起,共同构建了函数式编程的框架。 什么是函数式编程 函数式编程是…...
闭包的概念
概念 内层函数可以访问到外层函数的变量和参数,即一个函数和它周围状态捆绑在一起的组合。 举例 函数作为返回值 // 函数作为返回值 function test(){const a 1;return function() {console.log(a:,a);} }const fn test(); const a 6; fn(); // 1 2. 函数作…...
openGauss学习笔记-52 openGauss 高级特性-LLVM
文章目录 openGauss学习笔记-52 openGauss 高级特性-LLVM52.1 适用场景52.2 非适用场景52.3 其他因素对LLVM性能的影响52.4 LLVM使用建议 openGauss学习笔记-52 openGauss 高级特性-LLVM openGauss借助LLVM(Low Level Virtual Machine)提供的库函数&…...
MySQL 8.0字符集校正
MySQL升级为8.0版本时,之前版本的字符集往往是不同的,需要校正。 执行下面的三个SQL语句的查询结果,可以从库、表、列三个层面对字符集进行校正。 库 select concat(alter database , schema_name, default character set utf8mb4 collate …...
软考:中级软件设计师:数据库恢复与备份,故障与恢复,反规范化
软考:中级软件设计师:数据库恢复与备份 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备…...
Unbutu系统-Docker安装、JDK环境配置,Docker常用指令、Docker安装MySQL、Redis、Tomcat、Nginx,前端后分离项目部署
目录 1、防火墙 1.1、查看防火墙状态 1.2、开启防火墙 1.3、关闭防火墙 1.4、重启防火墙 1.5、查看防火墙版本 2、安装JDK 2.1、官网下载tar包 2.3、解压tar.gz文件 2.4、配置环境变量 2.4.1、查看安装路径 2.4.2、设置环境变量 2.4.3、执行该让环境变量生效 2.4…...
Python绘图系统10:在父组件中使用子组件的函数
文章目录 Combobox绑定事件互相调用源代码 Python绘图系统: 📈从0开始实现一个三维绘图系统自定义控件:坐标设置控件📉坐标列表控件📉支持多组数据的绘图系统图表类型和风格:散点图和条形图📊混…...
【Linux的成长史】Linux的发展史
🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集 数据库专栏 初阶数据结构 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如…...
OLED透明屏是什么?什么叫做OLED透明屏的原屏?
OLED透明屏是一种新型的显示技术,具有高对比度、高亮度和能耗低等优势,正被越来越广泛地应用于各个领域中。 在OLED透明屏中,原屏是至关重要的元件之一。本文将深入探讨OLED透明屏原屏的意义、制造过程、品质要求、应用案例和发展趋势&#…...
Redis 持久化的手段有哪些 ?RDB 和 AOF 有什么区别 ?
目录 1. Redis 持久化的手段有哪些 2. RDB 和 AOF 有什么区别 2.1 RDB 持久化 2.2 AOF 持久化 2.2.1 AOF 持久化策略有哪些 3. 混合持久化是如何执行的(了解) 1. Redis 持久化的手段有哪些 Redis 持久化的手段有三种: 快照方式&#…...
【Vue】vue2预览显示quill富文本内容,vue-quill-editor回显页面,v-html回显富文本内容
文章目录 前言一、下载二、使用步骤1.引入样式2.html代码 总结 前言 提示:这里可以添加本文要记录的大概内容: vue后台框架,若依系统里有一个富文本编辑器,效果如下 在package.json里面查看,发现插件名叫quill 插件的…...
华纳云:ubuntu下nginx服务器如何配置
在Ubuntu操作系统上配置Nginx服务器涉及以下步骤。这里我将提供一个基本的配置示例,你可以根据自己的需求进行修改和定制。 安装 Nginx: 打开终端,并输入以下命令来安装 Nginx: sudo apt update sudo apt install nginx 启动 …...
PTP时间同步例程
下面是一个基本的PTP时间同步例程,可以使用Arduino或其他类似的微控制器实现: 步骤1:准备硬件 - 一个Arduino或类似的微控制器 - 一个以太网模块 步骤2:导入库文件 #include <Ethernet.h> #include <EthernetUdp.h>…...
【ES6】ES6遍历属性的方法
在ES6中,有几种遍历属性的方法,其中包括: 使用for…in循环和Object.keys()方法。 let obj {a: 1, b: 2, c: 3}; for (let key in obj) {console.log(obj[key]); }使用for…of循环和Object.values()方法。 let obj {a: 1, b: 2, c: 3}; f…...
【Web系列二十四】使用JPA简化持久层接口开发
目录 环境配置 1、引入依赖 配置文件 代码编写 实体类创建 JPA常用注解 Service与ServiceImpl Service ServiceImpl Controller Dao 三种实现Dao功能方式 1.继承接口,使用默认接口实现 2.根据接口命名规则默认生成实现 3.自定义接口实现(类似MyBatis…...
Flink流批一体计算(16):PyFlink DataStream API
目录 概述 Pipeline Dataflow 代码示例WorldCount.py 执行脚本WorldCount.py 概述 Apache Flink 提供了 DataStream API,用于构建健壮的、有状态的流式应用程序。它提供了对状态和时间细粒度控制,从而允许实现高级事件驱动系统。 用户实现的Flink程…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...
渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用
阻止除自定义标签之外的所有标签 先输入一些标签测试,说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时(如通过点击或键盘导航&…...
