mysql(二)SQL语句
目录
一、SQL语句类型
二、数据库操作
三、数据类型
四、创建
五、查看
六、更改
七、增、删、改、查
八、查询数据
一、SQL语句类型
SQL语句类型:
DDL
DDL(Data Definition Language,数据定义语言):用于定义数据库中的各种对象,包括数据库、表、视图、触发器等,常见的 DDL 命令有 CREATE、ALTER、DROP
DML
DML(Data Manipulation Language,数据操作语言):用于操作表格中的数据,进行新增、查询、更新、删除等操作,常见的 DML 命令有 SELECT、INSERT、UPDATE、DELETE
DCL
DCL(Data Control Language,数据控制语言):用于管理数据库的权限和安全性,包括授权、回收权限等操作,常见的 DCL 命令有 GRANT、REVOKE
DQL
DQL(Data Query Language,数据查询语言)是 SQL 的一个子集,主要用于查询数据库中的数据,常见的 DQL 命令包括 SELECT
二、数据库操作
(1) 查看show databases;
(2)创建
默认字符集
create database 数据库名称;
默认是latin1
指定字符集
create database 数据库名称 character set utf8;
使用uft8格式的字符集
(3) 进入 use 数据库名称;
(4) 删除
drop database 数据库名称;
(5)更改
更改 库名称
进入到数据库的目录中修改数据库的名称

修改字符集
ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
三、数据类型
数据类型
(1)数值类型
TINYINT:1个字节,范围为 -128 到 127(有符号)或 0 到 255(无符号)
可以使用 TINYINT UNSIGNED 来存储年龄(无符号)或温度(有符号)等小数值
SMALLINT:2个字节,范围为 -32,768 到 32,767(有符号)或 0 到 65,535(无符号)
可以使用 SMALLINT 存储商品数量, 或者使用 SMALLINT UNSIGNED 存储区域编号(无符号)
INT:4个字节,范围为 -2,147,483,648 到 2,147,483,647(有符号)或 0 到 4,294,967,295(无符号)
这是最常用的整数类型,它可以被用于许多方面,例如存储订单号或者用户的数量
BIGINT:8个字节存储很大的数值,例如资金、人口等
FLOAT(M,D): 单精度浮点数,M是总位数,D是小数位数,可以使用 FLOAT(8,2) 来存储商品的价格
(2) 时间\日期类型
DATE:用来存储日期,格式为’YYYY-MM-DD’,可以使用 DATE 存储出生日期或者过期日期等
TIME: 用来存储时间,格式为’HH:MM:SS’,可以使用 TIME 存储过去一段时间内花费的小时数,分钟数或秒数等
DATETIME:用来存储日期和时间,格式为’YYYY-MM-DD HH:MM:SS’,可以使用 DATETIME 存储订单时间或者统计报告生成时间等
TIMESTAMP: 用来存储日期和时间,通常被用于记录特定事件的时间戳。使用UNIX的日期和时间格式,从1970年1月1日午夜开始计算, 可以使用 TIMESTAMP 存储用户上次登录的时间戳
(3)字符串类型
CHAR: 用来存储定长字符串,最大长度为255个字符,可以使用 CHAR(10) 存储用户的性别、婚姻状况等数据
VARCHAR: 用来存储可变长度字符串,最大长度为65535个字符,可以使用 VARCHAR(255) 存储用户输入的文本内容、地址等数据
TEXT: 用来存储大型字符数据,最大长度为2^16-1个字符,可以使用 TEXT 存储文章、评论等大型文本数据
(4)二进制类型
BINARY: 用来存储固定长度二进制数据,最大长度为255个字节,可以使用 BINARY(16) 存储UUID
VARBINARY: 用来存储可变长度二进制数据,最大长度为65535个字节,可以使用 VARBINARY(256) 存储不定长度的二进制数据,例如图片和音频等文件
BLOB:用来存储大型二进制对象数据,最大长度为2^16-1个字节,可以使用 BLOB 存储音视频等媒体文件
四、创建
创建格式可参照:
(1) create table tables_name(
第一列 类型属性,
第二列 类型属性,
......
) character set utf8mb4 collate utf8mb4_unicode_ci;
(2)create table tables_name(
第一列 类型属性,
第二列 类型属性 character set utf8mb4 collate utf8mb4_unicode_ci,
......
);
character set utf8mb4 collate utf8mb4_unicode_ci
写在列之后,声明列的字符集
写在表之后,声明表的字符集
创建数据表时,添加约束条件
创建数据表时添加
CREATE TABLE students (
id INT PRIMARY KEY, -- 定义 id 列为主键
name VARCHAR(20) NOT NULL,
age INT
);
(2)练习
花名册 序号 姓名 性别 年龄 出生年月
1,‘张三’,‘男’,‘18’,‘2000-5-5’

插入内容
五、查看
(1)查看表内的数据
select * from tables_name;
select column1,column2 from tables_name where 条件;
(2)查看表格的属性
describe tables_name;
六、更改
更改
表:
名称
alter table old_table_name rename to new_table_name;
注意事项:如果现在的表正在被其他表或程序应用,那么可能会导致无法正常引用。
字符集
alter table my_table convert to character set utf8mb4 collate utf8mb4_unicode_ci;
列:
名称
alter table table_name change old_name new_name 属性;
属性
alter table my_table modify 修改的列 修改的属性;
字符集
alter table users modify name varchar(50) character set utf8mb4;
七、增、删、改、查
(1)增
insert into table_name (column1, column2, ...) values (value1, value2, ...);
(2)删
delete from table_name where 条件;
(3)改
update table_name set column1 = value1, column2 = value2, ... where 条件;
(4)查
select * from tables_name;
select column1,column2 from tables_name where 条件;
八、查询数据
(一)单表查询
(1)全表查询: 在查询中没有指定任何的限制条件,会返回整张表的所有行
(2)条件查询
条件表达式:
1) 运算符
等于=
不等于!=或<>
大于>
大于等于>=
小于<
小于等于<=
between:BETWEEN运算符用于表示在一个范围内的值,AND
in:IN运算符用于比较一个表达式是否与一组表达式中的任意一个相匹配
2) 通配符
%:%通配符匹配任意数量(包括0个)的字符
_:_通配符匹配一个任意字符
通常会和like一起使用
3) 查询类型
where子句:查询时,指定要返回符合条件的行,后面跟条件
排序查询: 排序查询是通过SQL查询语句将所查询的结果按照指定的排序方式排列
升序(默认) ASC
降序 DESC
select * from test order by colume1;
select * from test order by colume1 DESC, colume2 ASC;
1.、 分组查询
主要用于统计分析,生成对应报表
count(*)函数用于统计出现过的记录总和
group by用于按照特定字段进行分组
select class, count(*) from test group by class;
2、 去重查询
用于从结果集中删除重复的行,只返回不同的值
select distinct colume1 from test;
如果查询多个列,则会显示两列的组合,每个组合只会出现一次
3、 分页查询
用于在SQL语句中限制返回数据的条数该技术可用于显示诸如Web页面之类的大量数据
limit 表示要返回的记录数
offset 表示查询结果的起始位置或查询结果的偏移量
select * from test limit 10 offset 10;
4、 子查询
在一个SQL语句中嵌套使用另一个完整的SQL查询语句。子查询通常用作主查询的查询条件或结果过滤条件,以及用于提供主查询需要的一些数据
select * from test where age > (select avg(age) from test);
4)函数查询
聚合函数
SUM
求某一列的值的总和
select sum(colume1) from test;
AVG
求某一列值的平均值
select avg(colume1) from test;
如果某一列中的值包含数值0,该如何计算?
COUNT
用于计算指定列中的行数,不包含非空行
select count(id) from test;
MAX
用于计算指定列中的最大值
MAX函数适用于任何数据类型,无论列中包含的是数字、文本还是其他类型的数据
如果是文本字符串类型,则按照字符串的字典序进行排序
select max(id) from test;
MIN
用于计算指定列中的最小值
MIN函数适用于任何数据类型,无论列中包含的是数字、文本还是其他类型的数据
如果是文本字符串类型,则按照字符串的字典序进行排序
select min(id) from test;
字符串函数
CONCAT
连接两个或多个字符串,并返回合成后的新字符串
select concat('hello',' ','World');
LENGTH
返回字符串的长度(字符数)
select length('Hello World');
UPPER
将字符串转换为大写字母
select upper(Hello World);
LOWER
将字符串转换为小写字母
select lower(Hello World);
SUBSTR
返回指定字符串中的一部分,可以使用起始位置和长度指定要返回的子字符串
select substr('Hello World',7,5);
REPLACE
将指定字符串中的一部分替换为新字符串,并返回新的字符串
select replace('Hello World','Hello','Hi');
九、多表查询
(一)内连接查询:内连接查询(INNER JOIN):显示两个表中满足条件的行,并且只显示这两个表中共有的列
格式:
SELECT *
FROM table1
INNER JOIN table2
ON table1.column1 = table2.column2;
(二)外连接查询
1)左外连接查询:左外连接查询(LEFT JOIN):显示左表中所有行和右表中满足条件的行,如果右表没有匹配的行,则显示null值/
SELECT *
FROM table1
LEFT JOIN table2
ON table1.column1 = table2.column2;
2)右外连接查询:右外连接查询(RIGHT JOIN):与左外连接查询类似,但显示右表中所有行和左表中满足条件的行
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column1 = table2.column2;
相关文章:
mysql(二)SQL语句
目录 一、SQL语句类型 二、数据库操作 三、数据类型 四、创建 五、查看 六、更改 七、增、删、改、查 八、查询数据 一、SQL语句类型 SQL语句类型: DDL DDL(Data Definition Language,数据定义语言):用于…...
Unity自定义后处理——Tonemapping色调映射
大家好,我是阿赵。 继续介绍屏幕后处理,这一期介绍一下Tonemapping色调映射 一、Tone Mapping的介绍 Tone Mapping色调映射,是一种颜色的映射关系处理,简单一点说,一般是从原始色调(通常是高动态范围&…...
Redis学习 知识总结 一
Redis学习 知识总结 一 1 Redis初识1.1 Redis八大特性1.2 redis使用场景1.3 Docker安装redis 2 API的理解和使用2.1 通用命令2.2 字符串(String)类型2.3 哈希(Hash)类型2.4 有序列表(list)2.5 集合…...
Webpack5 vue-loader和VueLoaderPlugin
文章目录 vue-loader和VueLoaderPlugin的作用vue-loader具体使用方式注意事项 vue-loader和VueLoaderPlugin的作用 .vue 文件是用户用 HTML-like 的语法编写的 Vue 组件。每个vue 文件都包括三部分 , VueLoaderPlugin 是一个解析 Vue.js 的插件,用于在 webpack 构…...
【传统视觉】模板匹配和卡尺圆检测
模板匹配 粗定位 1、原理:模板匹配是指在当前图像A中匹配与图像B最相似的部分,那么A为输入图像,B为模板图像。 2、匹配方法:B在A上华东,逐个遍历所有像素完成匹配。 3、函数: result cv2.matchTemplate(…...
记一次简单的MySql注入试验
试验环境: 1.已经搭建好的php服务器,并可以通过访问到localhost/index.php; 2.已经安装好数据库,并创建表test,表内有name、age等字段,并随便创建几个假数据用于测试;如图: 开始测…...
软考开发思考(完善中)
软考开发思考 文章目录 软考开发思考1. 互联网媒体:新技术和新应用及当前的趋势和应用1.1 自动化报道1.2. 虚拟和增强现实1.3. 数据新闻1.4. 即时新闻推送1.5 智能助手和聊天机器人1.6 语音播报,语音检索,后台播放、播放倍速。1.6 机器人交互…...
[NLP]LLaMA与LLamMA2解读
摘要 Meta最近提出了LLaMA(开放和高效的基础语言模型)模型参数包括从7B到65B等多个版本。最值得注意的是,LLaMA-13B的性能优于GPT-3,而体积却小了10倍以上,LLaMA-65B与Chinchilla-70B和PaLM-540B具有竞争性。 一、引言 一般而言࿰…...
后端一次返回大量数据,前端做分页处理
问题描述:后端接口返回大量数据,没有做分页处理,不支持传参pageNum,pageSize 本文为转载文章,原文章:后端一次返回大量数据,前端做分页处理 1.template中 分页 <el-paginationsize-chang…...
卷积神经网络识别人脸项目—使用百度飞桨ai计算
卷积神经网络识别人脸项目的详细过程 整个项目需要的准备文件: 下载链接: 链接:https://pan.baidu.com/s/1WEndfi14EhVh-8Vvt62I_w 提取码:7777 链接:https://pan.baidu.com/s/10weqx3r_zbS5gNEq-xGrzg 提取码&#x…...
vue中预览静态pdf文件
方法 // pdf预览 viewFileCompare() { const pdfUrl "/static/wjbd.pdf"; window.open(pdfUrl); }, // 下载 downloadFile(){ var a document.createElement("a"); a.href "/static/wjbd.pdf"; a.…...
Java多进程(详细)
进程的含义 简单理解是正在跑起来的程序,正在运行的程序。没有正在运行的程序不叫进程,同一个程序,运行多次,就可能产生多个进程。 平时所说的程序,值的是一些exe的可执行文件,得把程序跑起来才会涉及到进程…...
OpenCV 4.0+Python机器学习与计算机视觉实战
💂 个人网站:【办公神器】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言第一部分&…...
自学网络安全(黑客)全笔记
一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…...
WAF/Web应用安全(拦截恶意非法请求)
Web 应用防火墙(Web Application Firewall, WAF)通过对 HTTP(S) 请求进行检测,识别并阻断 SQL 注入、跨站脚本攻击、跨站请求伪造等攻击,保护 Web 服务安全稳定。 Web 安全是所有互联网应用必须具备的功能,…...
Windows环境下git客户端中的git-bash和MinGW64
我们在 Windows10 操作系统下,安装了 git 客户端之后,可以通过 git-bash.exe 打开一个 shell: 执行一些 linux 系统里的命令: 注意到上图紫色的 MINGW64. Mingw-w64 是原始 mingw.org 项目的改进版,旨在支持 Window…...
欧姆龙CX系列PLC串口转以太网欧姆龙cp1hplc以太网连接电脑
你是否还在为工厂设备信息采集困难而烦恼?捷米特JM-ETH-CX转以太网通讯处理器为你解决这个问题! 捷米特JM-ETH-CX转以太网通讯处理器专门为满足工厂设备信息化需求而设计,可以用于欧姆龙多个系列PLC的太网数据采集,非常方便构建生…...
Vue3笔记
1. Vue2 选项式 API vs Vue3 组合式API <script> export default { data(){ return { count:0 } }, methods:{ addCount(){ this.count } } } </script> <script setup> import { ref } from vue const count ref(0) c…...
git相关
gerrit用户指南: 资料:Gerrit 用户指南 gerrit-user-guide 上述有介绍如何review,review并非修改代码之后如何重新提交等操作 jenkins介绍 Jenkins详细教程 - 知乎 一、jenkins是什么? Jenkins是一个开源的、提供友好操作界…...
车道线检测|利用边缘检测的原理对车道线图片进行识别
前言 那么这里博主先安利一些干货满满的专栏了! 这两个都是博主在学习Linux操作系统过程中的记录,希望对大家的学习有帮助! 操作系统Operating Syshttps://blog.csdn.net/yu_cblog/category_12165502.html?spm1001.2014.3001.5482Linux S…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
