MYSQL------从概述到DQL
数据库(数据管理,数据存储的仓库)
数据库管理系统(操纵和管理数据库的大型软件)
SQL是操作关系型的编程语言,是一套标准
MySQL下载安装完成以后,可以进行启动和停止操作,对于启动和停止,有两个方法1.在控制台直接输入services.msc在里面找到MySQL进行停止和启动。2.直接在控制台中输入net start mysql80启动数据库,输入net stop mysql80停止。
Sql语句也会有分类,DDL语句:主要用来定义数据库对象的,像数据库,表,字段。
DML语句:数据操作语言,用来完成数据库表中的增删改的操作
DQL语句:数据查询语言,用来查数据库中表的记录
DCL语句:数据控制语言,用来创建数据库用户"用户!!!!!",控制数据库的访问权限。
关系型数据库:建立在关系型模型基础上,有多张相互连接的二维表组成的数据库(RDBMS)。
接下来,我们学习MySQL的停用语法与分类
1.DDL语句,数据定义语言,用来定义数据库对象(数据库,表,字段)
2.DML语句数据操作语言,用来对数据库中的数据进行增删改。
3.DQL语句,数据查询语句,用来查询数据库中的表的记录。
4.DCL语句,数据控制语言,用来创建数据库用户,控制数据库的访问权限
DDL语句是用来定义字段,表的语句。
1.查询所有数据库:SHOW DATABASES;
2.查询当前数据库:SELECT DATABASE();
3.创建 CREATE DATABASE[IF NOT EXISTS]数据库名[DEFAULT CHARSET字符集][COLLATE排序规
注意:[IF NOT EXISTS]的作用是,如果这个数据库不存在,就创建这么一个数据库,如果存在,则不进行任何操作。
4.删除:DROP DATABASE[IF EXISTS]数据库名;
5.使用:USE 数据库名;
那么,如何通过DDL语句来完成对数据库中表结构的操作呢?
有如下语法:
SHOW TABLES;查询当前数据库的所有表。
DESC表名;查询表结构。
SHOW CREATE TABLE 表名;查询指定表的建表语句。
当然,以上的语法必须先进入到一个具体的数据库才可以。也就是必须先使用一个数据库才可以。
当然了,也可以创建一个表结构使用CREATE TABLE语法可以创建一个表结构。我编写了一个表,语法如下: create table user(
-> id int comment ‘编号’
-> )comment ‘用户表’;
MySQL中的数据类型有很多,主要分为三类:数值类型,字符串类型,日期时间类型。
首先来看看数值类型
1.TINYINT 大小:1byte
2.SMALLINT 大小:2bytes(类型有点像java语言中的short)
3.MENDIUMINT 大小:3bytes
4.int 大小:4bytes
5.BIGINT 大小:8bytes
以上五种都是整型数值。
1.FLOAT 大小:4byte
2.DOUBLE 大小:8byte
3.DECTMAL
以上是浮点型的数值。
数值的存储范围会因为有符号和无符号而发生改变,有符号就是带负数的,例如TINYINT是从-128到127这是有符号的,如果是无符号的,就是从0到255我们在写代码的时候,要根据实际情况来决定是使用有符号的还是使用无符号的
如果使用无符号的,需要在数据类型后加上UNSIGNED例如:age TINYAGE UNSIGEND
那么接下来来说一下字符串类型的数值
1.CHAR 定长字符串 一般要在后面大括号标记字符长度CHAR(10) 相比于VARCHAR性能高一些
2.VARCHAR 变长字符串 也需要标记字符长度
3.TINYBLOB 不超过255个字符的二进制数据
4.TINYTEXT 短本字符串
5.BLOB 二进制形式的长文本数据
6.TEXT 长文本数据
7.MENDIUMBLOB 二进制形式的中等长度文本数据
8.MENDIUMTXET 中等长度文本数据
9.LONGBLOB 二进制形式的极大长度的文本数据
10.LONGTXET 极大文本数据
二进制的数据包括安装包,音频之类的数据。
因为CHAR的性能要高一些,所以当字符串长度固定时,使用CHAR,当字符串长度会变化时就要使用VARCHAR。
接下来,介绍一下日期类型数据
1.DATE:日期值,几年几月几日
2.TIME:时间值,几时几分几秒
3.YEAR:年分值,几几年
4.DATETIME:混合日期和时间值,几年几月几日几时几分几秒
5.TIMESTAMP:混合日期和时间值,时间戳
一般DATE,TIME,DATETIME会使用的多一些。
记忆起来也比较轻松,date就是日期,year就是年份,time就是某一个时间,datetime就是年月日加时间。
接下来,我们用所学的数据类型来设计一张表,要包含以下数据:1.编号2.员工工号3.员工姓名4.性别5.年龄6.身份证号7.入职时间(取值年月日就可以了)代码如下:
create table user(-> id int comment '编号',-> name varchar(50) cooment '姓名',-> gender varchar(1) comment '性别',-> age int comment '年龄'-> )comment '用户表';
使用desc emp;代码,得到结果如下:
±-----------±-----------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±-----------±-----------------±-----±----±--------±------+
| id | int | YES | | NULL | |
| worknumber | varchar(10) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| gender | char(1) | YES | | NULL | |
| age | tinyint unsigned | YES | | NULL | |
| idcard | char(18) | YES | | NULL | |
| entrydate | date | YES | | NULL | |
±-----------±-----------------±-----±----±--------±------+
出现了以上的结果,表结构就已经算是创造完成了。||
接下来,我们学习一下DDL语句的修改操作
ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释][约束];(添加字段)
案列,在刚刚写的emp表中增加一个新的字段,名字叫做nickname,VARCAHR(20);
代码如下:
alter table emp add nickname varchar(10);
然后可以再次使用desc语句,查看表格有没有添加成功。
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);(修改数据类型)
代码如下:
alter table emp modify nickname varchar(30);
一样的,可以使用desc emp来查看有没有修改成功。
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度);(修改字段名和字段类型)
代码如下:
alter table emp change nickname nickname2 varchar(40);
案例:将emp表中的nickname字段修改为username,类型为varchar(30)
±-----------±-----------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±-----------±-----------------±-----±----±--------±------+
| id | int | YES | | NULL | |
| worknumber | varchar(10) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| gender | char(1) | YES | | NULL | |
| age | tinyint unsigned | YES | | NULL | |
| idcard | char(18) | YES | | NULL | |
| entrydate | date | YES | | NULL | |
| username | varchar(30) | YES | | NULL | |
±-----------±-----------------±-----±----±--------±------+
删除字段怎么删除呢?ALTER TABLE 表名 DROP 字段就可以。
代码如下:
alter table emp drop nickname2;
这样,就可以轻松删除表格中的某一个字段了。
最后一个修改的操作,修改表名。
ALTER TABLE 表名 RENAME TO 新表名;
我将emp表修改表名为emo,请看结果
alter table emp rename emo;
±--------------+
| Tables_in_zzz |
±--------------+
| emo |
| user |
±--------------+
删除表应该怎么操作呢?
drop table [if exit]表名;
如果想删除表中的数据,可以使用TRUNCATE TABE 表名;
这两种删除的方法,最后导致的结果都是两个表的数据全都会被删除掉。
DML语句也叫做数据操作语言,用来对数据库中的表的数据记录进行增删改操作。
1.添加数据(INSERT)
2.修改数据(UPDATE)
3.删除数据(DELET)
1.添加数据:
给指定字段添加数据 INSERT INTO 表名(字段名1,字段名2…)VALUES(值1,值2…);
给全部字段添加数据 INSERT INTO 表名 VALUES(值1,值2,…);
批量添加数据
INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…),(值1,值2,…),(值1,值2…);
INERT INTO 表名VALUES(值1,值2…),(值1,值2…),(值1,值2);
注意:插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
字符串和日期数据应该包含在引号中。
插入的数据大小,应该在字段的规定范围内。
那么,应该如何修改数据呢?
设计到一个新的关键字UPDATE
UPDATE 表名 SET 字段名=值1,字段名=值2,…[WHERE条件];
修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
实例:
ID name age
1,DDD,10
2,zzz,20
1.将ID为1的数据的name修改为QQQ。
套用上述语法update user set name = ‘QQQ’ where id=1;可以将ZZZ更改为QQQ;
2.修改ID为1的数据,将name修改为小刀,age修改为15。
继续套用上述语法可得
update user set name=‘小刀’,age=15 where id =1;
3.将所有人的年龄改为50;
update user set age=50;
这就已经可以了。
在完成上述操作时,我总是会查看表中的数据,这里有一个查看表中数据的一个语句。
SELECT*FROM 表名;
可以直接看到数据。
删除数据应该怎么做呢?
有个语句
DELETE FROM 表名[WHERE 条件]
DQL语句是用来查询表中的记录的,需要用到关键字select,在正常的业务系统中,查询的频率是最高的
首先是DQL的关键字:
1.select后面跟着的是字段列表。
2.from后面跟着的是表名列表。
3.where后面跟着的是条件。
4.grop by是分组字段列表。
5.having是分组后条件列表。
6.order by是排序字段列表。
7.limit是分页参数。
首先介绍的是DQL语句的基本查询
1.查询多个字段:select 字段一,字段二,字段三…FROM 表名;
这里我做一下示范。
代码如下: select name,gender from user;这样可以查询到表格中某一个字段所记录的数据。
2.select FROM 表名.
这个我经常用到,会展示这个表格中每一个字段以及记录的数据,就是展现出表格中的所有的内容。
同样的我也会做一个示范:
select * from user;这样就可以将表格中的内容都展现出来。
在具体的开发工作室中,尽量不要去写尽量的写出需要查询的所有字段,这样会方便后续人员查看代码。
查询也有去重的操作:语法是:select distinct 字段列表 from 表名。可以去除重复的记录。
使用as关键字可以对所查询的字段取别名,在表头处可以展示所取的别名。
代码展示:
select workaddress as’工作地址’ from ts;
使用as关键字以后先前设置的字段名会被抹去,留下的会是as关键字之后的字符串,也就是别名。
接下来,介绍条件查询。
关键字为where
语法:select 字段列表 from 表名 where 条件列表。
条件列表后面可以跟上比较运算符,也就是大于小于之类的运算符<>和!=是不等于。
比较运算符中还有一类为BETWEEN…AND 指在某个范围之内。
BETWEEN后跟最小值,AND后跟最大值。
in指在in之后列表的值,多选一。
LIke,占位符(模糊查询 _匹配单个字符,%匹配任意个字符)
逻辑运算符(AND或 &&)并且
(||或OR)或者
(NOT 或!)非运算
案例一:查询年龄为18的员工.
select * from ts where age=19;
案例二:查询年龄小于20的员工:
select * from ts where age<20;
案例三:查询没有身份证号的员工
select * from ts where idcard is NULL;
案例四:查询有身份证号的员工:
select * from ts where idcard is not NULL;
案例五:
查询年龄在15到18之间的员工:
select * from ts where age between 15 and 18;
案例六:查询年龄在25岁以下,并且性别为女的信息:
select * from ts where age<25&&gender=‘女’;
案例七:查询年龄为18或者19的信息:
select * from ts where age in(18,19);
in的作用是多选一,只要在括号范围内满足其一的就可以。
案例八:查询姓名为两个字的员工信息(使用占位符LIKE):
select * from ts where name like ‘__’;(这里是两个下划线,表示两个字符)
案例九:查询身份证最后一位=7的员工信息:
select * from ts where idcard like ‘%7’;
%的意思就是身份证前面多少位无所谓,只要保证最后一位是7就可以。
当然l,因为_匹配一个字符,也可以让前面的所有位数都用下划线替代,在最后一位用7,也可以达到相同的效果。
相关文章:
MYSQL------从概述到DQL
数据库(数据管理,数据存储的仓库) 数据库管理系统(操纵和管理数据库的大型软件) SQL是操作关系型的编程语言,是一套标准 MySQL下载安装完成以后,可以进行启动和停止操作,对于启动和停…...
MATLAB算法实战应用案例精讲-【图像处理】图像识别(基础篇)(二)
目录 数字图像处理基本知识 传统图像处理方法进行瑕疵检测 传统算法方向的选择...

Leetcode 3.12
leetcode hot 100 链表1.两两交换链表中的节点2.随机链表的复制3.排序链表 链表 1.两两交换链表中的节点 两两交换链表中的节点 1.必须要设置一个dummy (temp) 结点2.保存第二个节点3.先让第一个节点指向第三个节点4.再让第二个节点指向第一个节点5.最后让dummy指向第二个节点…...
【天池课堂】零基础入门数据挖掘-课程汇总
写在前面: 如果你现在很迷茫,但是又对数据挖掘感兴趣,建议先看看以下两个视频直播,两位大佬亲身讲述自己和数据挖掘的前世今生。 《如何入门数据挖掘竞赛》 鱼遇雨欲语与余。天池明星选手,武汉大学硕士,天…...

表单进阶(3)-上传文件和隐藏字段
上传文件:<input type"file"> 隐藏字段:<input type"hidden" name"" id"" value"带给后端的信息"> 禁用disabled:<button disabled"disabled">注册</bu…...
LLM(大语言模型)常用评测指标-MAP@R
MAPR (Mean Average Precision at R) 是一种用于评估信息检索系统或排序模型效果的评价指标。它特别适用于那些返回一组相关结果的情况,例如搜索引擎或推荐系统。这里的“R”代表返回的相关结果的数量。MAPR 考虑了结果的排名和相关性两个因素。 计算方法 计算平…...

腾讯面经学习笔记
💖 前言 👩🏫 参考地址 💖 操作系统 1. 进程和线程的区别 本质区别 进程是操作系统资源分配的基本单位线程是任务调度和执行的基本单位 开销方面 每个进程都有独立的代码和数据空间(程序上下文)&#…...
北京某中厂凉经
3月12号 大二想着找一份暑假面试,然后就海投。北京某上市公司给了面试,这也是我的第一个面试,听面试官最后的话大概是挂了。 大概回忆一下当时面试的部分内容吧,虽然已经过去一两小时的,而且我属于那种一面完就忘的差…...

离线数仓(五)【数据仓库建模】
前言 今天开始正式数据仓库的内容了, 前面我们把生产数据 , 数据上传到 HDFS , Kafka 的通道都已经搭建完毕了, 数据也就正式进入数据仓库了, 解下来的数仓建模是重中之重 , 是将来吃饭的家伙 ! 以及 Hive SQL 必须熟练到像喝水一样 ! 第1章 数据仓库概述 1.1 数据仓库概念 数…...
python | 类与对象
在 Python 中,我们用关键字 class 来定义类: class Player:pass Player 类中只有一条语句 pass,这是 Python 中的特殊语句,没有实际含义。 Python 在执行到它时也什么都不会做。不过它能够保证结构的完整性。例如,我…...

基于Qt 和python 的自动升级功能
需求: 公司内部的一个客户端工具,想加上一个自动升级功能。 服务端: 1,服务端使用python3.7 ,搭配 fastapi 和uvicorn 写一个简单的服务,开出一个get接口,用于客户端读取安装包的版本&#…...

【论文阅读】IEEE Access 2019 BadNets:评估深度神经网络的后门攻击
文章目录 一.论文信息二.论文内容1.摘要2.引言3.主要图表4.结论 一.论文信息 论文题目: BadNets: Evaluating Backdooring Attacks on Deep Neural Networks(BadNets:评估深度神经网络的后门攻击) 论文来源: 2019-IEEE Access …...

Unity 让角色动起来(动画控制器)
下载素材: 导入后,找到预制体和动画。 新建动画控制器,拖动到预制体的新版动画组件上。 建立动画关系 创建脚本,挂载到预制体上。 using System.Collections; using System.Collections.Generic; using UnityEngine;public c…...
ubuntu22.04环境中安装pylint
ubuntu22.04环境中安装pylint sudo apt-get install python3-pipsudo aptitude install python3-pipsudo pip install pylint sudo apt-get install python3-pip 在安装pylint的时候,需要使用pip命令,在ubuntu22.04环境中命令如下: $ sudo …...

主流数据库的区别
几个主流的数据库有: 1. MySQL:MySQL是一种关系型数据库管理系统,常用于Web应用程序开发和数据存储。 2. Oracle:Oracle是一种关系型数据库管理系统,由Oracle Corporation开发和销售。它广泛用于企业级应用程序中。 …...

veeam备份基础
veeam的安装 将文件动态连接文件复制到veeam的安装目录中,替换掉新的文件 重新启动服务 为veeam添加证书 为veeam添加存储 其他 第一次完整备份时间会比较久 备份预览,transferred和processing date的区别 transferred后面数据为压缩比...

Flink并行度
1、Task flink中每个算子就是一个Task,比如flatMap、map、sum是一个Task。 2、SubTask 算子有几个并行度SubTask的数量就是几,比如 3、算子并行度 算子并行度指的是每个算子的并行度,可用env.setParallelism(1);设置所有算子的并行度&am…...

这届留学生是懂作弊的,ChatGPT震惊教授一整年!
ChatGPT,一款全新聊天机器人模型,成为北美科技圈的新时髦。 图片来源:New York Post 有人和它“探讨”人生,畅聊哲学,但也有人起了歪心思,用它进行学术作弊。这类新型学术不端事件引发人们关于教育的再思考…...

CVE-2023-38836 BoidCMSv.2.0.0 后台文件上传漏洞
漏洞简介 BoidCMS是一个免费的开源平面文件 CMS,用于构建简单的网站和博客,使用 PHP 开发并使用 JSON 作为数据库。它的安装无需配置或安装任何关系数据库(如 MySQL)。您只需要一个支持PHP 的Web服务器。在 BoidCMS v.2.0.0 中存…...
pf4j插件实践验证
Java系统实现插件机制,可自行通过classloader实现,亦可使用成熟的框架。pf4j是一款轻量级,扩展性强的插件,可实现插件的开发管理(插件开发、加载、卸载、更新),省略了一些基础代码的开发&#x…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...