DAY01 MySQL入门

第一章 数据库介绍

1.1 什么是数据库

数据存储的仓库,本质上是一个文件系统,作用:方便管理数据的。

1.2 数据库管理系统

数据库管理系统(DataBase Management System, DBMS):指一种操作和管理数据库的大型软件。
数据库管理系统—>MySQL软件—>多个仓库—>多张表—>多条记录(数据)

在这里插入图片描述
在这里插入图片描述

1.3 实体(java类)和表关系

在这里插入图片描述

1.4 常见关系型数据库

1.MYSQL:开源免费的数据库,小型的数据库.已经被Oracle收购了,MySQL6.x版本(商业、社区)也开始收费。2.Oralce:收费的大型数据库,Oracle公司的产品你。Oracle收购SUN公司,收购MySQL。3.DB2:IBM公司的数据库产品,收费的。常应用在银行系统中。4.OceanBase:阿里的大型数据库,性能已超越Oracle全球第一。5.SQLServer:Microsoft 公司收费的中型的数据库。C#、.net等语言常使用。6.SyBase:已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。7.SQLite:嵌入式的小型数据库,应用在手机端。

第二章 MySQL安装和使用

2.1 安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 配置

在这里插入图片描述
在这里插入图片描述

第三章 SQL

3.1 概述

什么是SQL

结构化查询语言(Structured Query Language)

通过SQL语言完成数据库操作。实现对数据库中的对象(数据库、数据库表、数据库中数据等)进行增删改查。

C:create 创建

R:retrieve(read)检索、查询

U:update 修改

D:delete 删除

SQL方言

SQL是一套标准,所有的数据库厂商都实现了此标准;但是各自厂商在此标准上增加了特有的语句,这部分内容我们成为方言。

举个例子:MySQL方言注释 #

我们在学习sql语句时,同时要关注每一家数据库特有的方言。

SQL书写规范
1. sql语句可以单行或多行书写,最后以分号结尾2.sql语句(在windows平台下)不区分大小写,建议关键字大写SELECT * FROM student;3.注释单行-- 所有数据库厂商支持# 仅mysql厂商支持(方言)多行/* 注释内容 */		
SQL分类
1. DDL(Data Definition Language)数据定义语言(命令了解,掌握图形化工具操作)用来定义数据库对象:数据库,表,列等。关键字:create(创建),drop(删除),alter(修改)等2. DML(Data Manipulation Language)数据操作语言(重点)用来对数据库中表的数据进行增删改。关键字:insert(插入),delete(删除),update(修改)等3. DQL(Data Query Language)数据查询语言(特别重要)用来查询数据库中表的记录(数据)。关键字:select(查询),from(从哪张表查询),where(指定查询条件)等4. DCL(Data Control Language)数据控制语言(了解中的了解)由DBA(数据库管理员)完成DCL用来定义数据库的访问权限和安全级别,以及创建用户。关键字:grant(授权),revoke(撤销权限)等5. TCL(Transaction Control Language)事务控制语言用于控制数据库的事务操作,关键字:commit,savepoint,rollback等

第四章 SQL基础操作

4.1 DDL

  • 进入公司后,数据库和表只创建一次,通常有DBA数据库管理员操作 DataBase Adminisitrator
  • 而且我一会讲图形化工具,可以简化这里面的代码(10分钟内搞定)
操作数据库
  • 创建库、显示库、修改库、删除库操作
    C:创建
1、直接创建数据库【掌握】语法:create  database 数据库名称;实例:create database day01;
2、创建数据库并指定字符【了解】语法:create database 数据库名称 charset 字符集名称;实例:create database day01_1 charset gbk;

R:查询

1、查看所有数据库语法:show databases;
2、查看建库语句语法:show create database 数据库名称;实例:show create database day01;

在这里插入图片描述
U:修改

1、修改数据库字符集语法:alter database 数据库名称 charset  新字符集;实例:alter database day01_1 charset utf8;

D:删除

1、直接删除数据库语法:drop database 数据库名称;实例:drop database day01_1;

使用数据库

1、进入/切换某一个具体的数据库语法:use 数据库名称;实例:use day01;
2、查看当前所在哪个数据库中语法:select database();

在这里插入图片描述

操作表
  • 创建表、显示表、修改表、删除表操作

C:创建

1. 创建表(掌握)语法:CREATE TABLE 表名(列名1 数据类型,列名2 数据类型,列名3 数据类型,...);实例:CREATE TABLE student(id INT,name VARCHAR(32));
2. 常用数据类型(平时去写会用就行)int:整形float:浮点型double:浮点型decimal:浮点型(保留精准度)decimal(m,n) 指定范围m 总长度n 小数长度例如:decimal(5,2)999.99 最大值0.01 最小值varchar:字符型varchar(n) 指定容纳多少个字符 1-65535 包含字母,符号,汉字text:文本型date:日期类型datetime:日期时间类型3. 克隆表创建表时,可以快速指定另一个张表的结构语法:create table 新表名 like 旧表明;实例:create table stu like student;

R:查询

1. 查看所有表语法:show tables;2. 查看建表语句语法:show create table 表名;实例:show create table stuent;3. 查看表结构    	语法:desc 表名称;实例:desc student;

U:修改

1. 添加一列语法:alter table 表名 add 列表 数据类型;实例:alter table stu add jieshao varchar(50);2. 修改类型语法:alter table 表名 modify 列表 数据类型;实例:alter table stu modify jieshao varchar(100);3. 修改列名和类型语法:alter table 表明 change 旧列表 新列表 新类型;实例:alter table stu change jieshao intro varchar(100);4. 删除指定列语法:alter table 表名 drop 列表;实例:alter table stu drop intro;5. 修改表字符集语法:alter table 表名 charset 字符集;实例:alter table stu charset gbk;6. 修改表名字语法:rename table 旧名称 to 新名称;实例:rename table stu to stu1;

D:删除

1. 直接删除表语法:drop table 表明;实例:drop table stu;
图形化工具

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 DML

添加记录
1. 语法:insert into 表名(列名1,列名2 ...) values(值1,值2...);2. 注意:列名和值的数据类型要对应字符串类型可以使用单双引号,推荐单引号字符串可以插入一切(任意)类型,MySQL底层实现了隐式转换个别列名字段名如果跟关键字冲突了,我们可以使用反引号包裹起来例如:`name`3. 练习:-- 插入一条学院信息INSERT INTO student(id,`name`) VALUE(1,'张三');-- 指定部分列名INSERT INTO studnt(id) VALUES(2);-- 省略表列表名 前提:values中为所有列赋值INSERT INTO student VALUES(3,'刘备');-- 如下语法错误INSERT INTO student VALUES(4);--批量插入数据INSERT INTO student(id,`name`) VALUES(5,'赵云'),(6,'诸葛亮');

蠕虫复制

作用:将一张表的记录,快速复制到另外一张表应用场景:数据的迁移需求:创建一张stu新表,表结构与student一致,实现数据的快速迁移要求:二张表结构相同步骤:1. 克隆表create table stu like student;2. 数据迁移-- 查询student表中的所有数据SELECT * FROM student;-- 将student表的查询结果插入到stu表INSERT INTO stu SELECT * FROM student;
修改记录
1. 语法:update 表名 set 列1=值1,列2=值2 ... [where 条件]注意:where条件可以不指定,如果没有指定,就是修改所有记录mysql语法中,如果讲师通过中括号括起来内容,代表该内容可以不写2. 实例:-- 修改名称为'zhangfei'UPDATE stu SET `name`='zhangfei';-- 指定where条件UPDATE student SET `name`='zhangfei' WHERE id=1;
删除记录
1. 语法:delete from 表名 [where条件]2. 解释:[] 中的语法内容可以不写,如果没有写where条件,删除所有3. 实例:-- 删除数据DELETE FROM student WHERE id=2;4. 摧毁表,重构表先把表删除,再创建一个相同结构的新表truncate table 表名;-- 删除整张表数据DELETE FROM stu; -- 一条条的删除,最终删除所有数据TRUNCATE TABLE stu; -- 删除整张表后,再重新创建表	
知识小结
  • 新增:insert into 表名
  • 修改:updat 表名 set
  • 删除:delete from 表名

4.3 DQL简单查询(检索)

导入数据

-- 创建表
create table student1(id int,name varchar(20),chinese double,english double,math double
);
-- 插入记录
insert into student1(id,name,chinese,english,math) values(1,'tom',89,78,90);
insert into student1(id,name,chinese,english,math) values(2,'jack',67,98,56);
insert into student1(id,name,chinese,english,math) values(3,'jerry',87,78,77);
insert into student1(id,name,chinese,english,math) values(4,'lucy',88,NULL,90);
insert into student1(id,name,chinese,english,math) values(5,'james',82,84,77);
insert into student1(id,name,chinese,english,math) values(6,'jack',55,85,45);
insert into student1(id,name,chinese,english,math) values(7,'tom',89,65,30);

语法

1. 格式:-- 查询展示所有列:SELECT * FROM 表名;-- 查询展示指定列:SELECT 列1, 列2, ... FROM 表名;2. 去重关键字 DISTINCT:用于去除重复记录SELECT DISTINCT 列名 FROM 表名;3. 查询结果可进行数学运算,不影响原表记录4. NULL 参与数学运算结果仍为 NULL,可使用 IFNULL() 函数处理:IFNULL(列名, 默认值) 若该列值为 NULL,则返回默认值(如:IFNULL(english, 0))。5. 设置别名(AS 可省略):SELECT 列名 [AS] 列别名 FROM 表名 [AS] 表别名;注意:AS 关键字在别名设置中可以省略。

练习

-- 查询表中所有学生的信息  
SELECT * FROM student1;  -- 查询表中所有学生的姓名和对应的语文成绩  
SELECT `name`, chinese FROM student1;  -- 查询表中学生姓名(去重)  
SELECT DISTINCT `name` FROM student1;  -- 在所有学生数学分数上加10分特长分  
SELECT id, `name`, math + 10 FROM student1;  -- 统计每个学生的总分  
SELECT id, `name`, chinese + IFNULL(english, 0) + math FROM student1;  -- 使用别名表示学生总分  
SELECT id, `name`, chinese + IFNULL(english, 0) + math AS '总分' FROM student1;  

4.4 DQL条件查询

导入数据

-- 创建表
CREATE TABLE student2 (id int,name varchar(20),age int,sex varchar(5),address varchar(100),math int,english int
);-- 插入记录
INSERT INTO student2(id,NAME,age,sex,address,math,english) VALUES
(1,'马云',55,'男','杭州',66,78),
(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),
(4,'柳岩',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),
(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),
(8,'德玛西亚',18,'男','南京',56,65);

在这里插入图片描述
练习

# SQL 练习 - 关系运算符
-- 查询math分数大于80分的学生
SELECT * FROM student2 WHERE math > 80;
-- 查询english分数小于或等于80分的学生  
SELECT * FROM student2 WHERE english <= 80;
-- 查询age等于20岁的学生
SELECT * FROM student2 WHERE age = 20;
-- 查询age不等于20岁的学生
SELECT * FROM student2 WHERE age != 20;# SQL 练习 - 逻辑运算符
-- 查询age大于35且性别为男的学生(两个条件同时满足)
SELECT * FROM student2 WHERE age > 35 AND sex = '男';
-- 查询age大于35或性别为男的学生(两个条件其中一个满足)
SELECT * FROM student2 WHERE age > 35 OR sex = '男';
-- 查询id是1或3或5的学生
SELECT * FROM student2 WHERE id = 1 OR id = 3 OR id = 5;
-- in关键字
-- 再次查询id是1或3或5的学生
SELECT * FROM student2 WHERE id IN (1, 3, 5);
-- 查询id不是1或3或5的学生
SELECT * FROM student2 WHERE id NOT IN (1, 3, 5);
-- 查询english成绩大于等于77,且小于等于87的学生
SELECT * FROM student2 WHERE english BETWEEN 77 AND 87;
-- 查询英语成绩为null的学生
SELECT * FROM student2 WHERE english IS NULL;# SQL 练习 - like模糊匹配
-- 查询姓马的学生
SELECT * FROM student2 WHERE name LIKE '马%';
-- 查询姓名中包含'德'字的学生
SELECT * FROM student2 WHERE name LIKE '%德%';
-- 查询姓名,且姓名有三个字的学生
SELECT * FROM student2 WHERE name LIKE '马__';

DAY02 查询&约束&多表

回顾

1、数据库介绍  数据库存储的仓库,是文件系统。数据库中的数据都会持久化到磁盘中。  数据库管理系统(DBMS)---> mysql软件 ---> 数据库 ---> 多张表 ---> 多条记录(多条数据)2、安装与启动mysql  参照 mysql安装教程一步步操作即可  登录  mysql [-h主机IP] -u用户名 -p密码  退出  exit 或者 quit  3、SQL语句  结构化查询语言,作用:通过SQL完成数据库对象的CRUD(增删改查)操作  数据库方言:例如:mysql可以通过 # 进行单行注释  DDL:操作数据库和表 create alter drop  DML:对表中数据进行增删改操作 insert update delete  DQL:对表中数据进行查询操作 select from where  DCL:主要进行权限控制 grant  TCL:主要进行事务控制 begin commit rollback4、基本操作  DDL  操作库  create database 数据库名称;  drop database 数据库名;  use 数据库名称; # 切换数据库  select database(); # 查看当前数据库操作表create table 表名(列名1 数据类型,列名2 数据类型,...);常操作的一些数据类型:int 整型varchar(长度)datedatetimefloatdoubletext删除表:drop table 表名;查看表结构:desc 表名;DML (重点)insert into 表名(列名1,列名2...) values(值1,值2...);update 表名 set 列名1=值1,列名2=值2 ... [where条件]delete from 表名 [where条件]DQL (重点)select ... from 表名 [where条件]关系运算: > < = !=逻辑运算: and or notin关键字between ... and ... 取值范围条件空值条件is nullis not null

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/97722.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/97722.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/97722.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Dify] 实现“多知识库切换”功能的最佳实践

在构建知识驱动的问答系统或 AI 助手时,一个常见需求是:根据用户问题所属领域或上下文,切换使用不同的知识库(Knowledge Base, KB)进行检索。这样可以提升回答的准确性、减少无关内容干扰,在多业务线或多主题应用中尤其有用。 本文将介绍: 为什么要做知识库切换 Dify …

Jenkins运维之路(Jenkins流水线改造Day02-2-容器项目)

上篇文章中已经将绝大部分&#xff0c;Jenkins容器项目打包的相关功能改造完成了&#xff0c;这里在对构建部署后的告警类操作进行一些补充1.流水线告警1.1 安装钉钉插件image-202509151111086851.2 配置钉钉插件image-20250915111235865image-202509151115328291.3 Pipeline钉…

64_基于深度学习的蝴蝶种类检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)

目录 项目介绍&#x1f3af; 功能展示&#x1f31f; 一、环境安装&#x1f386; 环境配置说明&#x1f4d8; 安装指南说明&#x1f3a5; 环境安装教学视频 &#x1f31f; 二、数据集介绍&#x1f31f; 三、系统环境&#xff08;框架/依赖库&#xff09;说明&#x1f9f1; 系统环…

N1ctf-2025-PWN-ez_heap近队容器的礼仪

ez_heap 保护全开 程序逻辑&#xff1a; 读入0x30的字符串&#xff0c;进行字符串校验&#xff1a;以冒号为标志split&#xff0c;分成四份。最后输入字符串形如&#xff1a; xor 0x111111111111111 validate badmin:p64(xor)b:Junior:111111创建0x180的chunk存放note 结构体…

纵深防御实践:东方隐侠CI/CD安全体系构建全解析

前言:CI/CD安全的必要性 企业上云是近些年的潮流,但是风险如影随形。之前有家电商平台出了个大岔子——半夜自动发新版本的时候,因为流程里没做安全检查,直接导致系统故障,一天就损失了300多万。这还不算完,某银行测试人员通过未授权的自动发布流程把代码推到了生产环境…

2025年渗透测试面试题总结-71(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 2. 渗透测试流程 & 内网渗透经验 3. SQL注入报错利用 4. XSS利用&#xff08;反射型/DOM型&#xff0…

基于Echarts+HTML5可视化数据大屏展示-茶园大数据平台指挥舱

效果展示&#xff1a;代码结构&#xff1a;主要代码实现 index.html布局 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&quo…

华为网路设备学习-33(BGP协议 八)BGP路由 选路规则

一、目标与背景BGP路由特性&#xff1a;支持丰富的路径属性选路规则多样注&#xff1a;在BGP路由表中最优选&#xff0c;不一定是路由表中的最优选。有可能存在静态路由或者ospf路由等&#xff0c;其优先级高于BGP路由。二、选路规则概述从1到12&#xff0c;依次对比优先级。一…

深度学习(七):梯度下降

梯度下降&#xff08;Gradient Descent&#xff09;是深度学习中最核心的优化方法之一&#xff0c;它通过迭代更新模型参数&#xff0c;使得损失函数达到最小值&#xff0c;从而训练出性能良好的神经网络模型。 基础原理 损失函数 在深度学习中&#xff0c;损失函数 L(θ) 是衡…

常见岩性分类与油气勘探意义笔记

常见岩性分类与油气勘探意义笔记 相关科普视频可查看【说说岩石的分类-哔哩哔哩】 一、岩石基本分类体系 根据成因&#xff0c;自然界岩石可分为三大类&#xff0c;其中沉积岩与油气勘探关系最为密切&#xff1a; 1. 火成岩&#xff08;岩浆岩&#xff09; 由岩浆冷却凝固…

【Kubernetes】Tomcat 启用 Prometheus 监控指标

之前出过一篇文章关于 “自定义监控指标实现业务 HPA 伸缩” &#xff0c;其中使用了 webapp 应用的指标数据&#xff08;JVM&#xff09;&#xff0c;接下来&#xff0c;这篇文章将介绍如何在通过 Tomcat 部署的 webapp 中启用 Metrics 指标&#xff0c;一起来看看吧&#xf…

JVM 三色标记算法详解!

目录1. 什么是三色标记算法&#xff1f;三种颜色及其含义&#xff1a;2. 基础三色标记算法流程 (非并发)3. 并发场景下的挑战&#xff1a;一致性问题3.1. 漏标 (Missing Live Object) - 最严重的问题3.2. 错标 (Floating Garbage) - 不那么严重的问题4. 屏障机制 (Barrier) - 解…

优化神经网络模型以提升R²值至0.99的全面方案

优化神经网络模型以提升R值至0.99的全面方案 1. 问题分析与背景 在深度学习项目中&#xff0c;提升模型的R&#xff08;决定系数&#xff09;值至0.99是一个具有挑战性的目标&#xff0c;特别是在处理复杂的时间序列数据时。我们的现有模型结合了LSTM层、自注意力机制和MLP处理…

pgNow:一款免费的PostgreSQL监控与性能诊断工具

pgNow 是一款免费的桌面工具&#xff0c;可以为 PostgreSQL 数据库提供快速集中的监控与性能诊断。 pgNow 不依赖代理&#xff0c;无需任何配置&#xff0c;可以帮助开发者或数据库管理员&#xff08;DBA&#xff09;直观地查看数据库的统计信息和关键性能指标。 功能特性 跨平…

深入理解栈与队列——从原理理解到实战应用

目录 一、引言 二、栈&#xff08;Stack&#xff09; 2.1 栈的基本概念 2.2 栈的使用 2.3 栈的模拟实现 2.4 栈的实战应用 2.4.1 括号匹配 2.4.2 逆波兰表达式求值 2.4.3 出栈入栈次序匹配 2.4.4 最小栈 三、队列&#xff08;Queue&#xff09; 3.1 队列的基本概念 …

用html5写王者荣耀之王者坟墓的游戏2deepseek版

我将为您创建一个王者荣耀英雄坟墓游戏的提词器HTML页面。这个工具将帮助游戏主播或玩家在游戏中快速查看英雄技能、连招顺序等信息。设计思路 创建英雄选择界面实现提词器显示区域&#xff0c;可自定义文本内容添加字体大小、滚动速度控制设计符合王者荣耀风格的UI下面是…

轻阅读:一键解决浏览器无法预览Office文档的实用方案

在日常办公中&#xff0c;通过浏览器直接打开Word、Excel或PPT等文档时&#xff0c;常遇到“需下载后用本地软件打开”的困扰&#xff0c;不仅流程繁琐&#xff0c;还面临格式兼容、设备存储不足等问题。轻阅读&#xff08;QingYueDu&#xff09;作为一款轻量级文件在线预览工具…

鸿蒙开发实战项目(六十七):常见组件和容器低代码开发示例(ArkTS)

本文详细代码需订阅下面专栏获取(订阅后私信邮箱+项目名): https://blog.csdn.net/m0_68036862/category_12333038.html 目录 介绍 环境搭建 代码结构解读 创建低代码工程 低代码设计界面布局 实现数据动态渲染 手动创建低代码页面 介绍 本篇Codelab是基于ArkTS语言的…

MySQL学习笔记04-DML-数据的增删改

新增数据--insert样例代码-- DML : 数据操作语言 -- DML : 插入数据 - insert -- 1. 为 emp 表的 username, password, name, gender, phone 字段插入值 insert into emp (username,password,name,gender,phone) values(fei,123456,张飞,1,13888888888);-- 2. 为 emp 表的 所有…

拼多多返利app的服务网格(Service Mesh)实践:Istio在导购系统中的应用

拼多多返利app的服务网格&#xff08;Service Mesh&#xff09;实践&#xff1a;Istio在导购系统中的应用 大家好&#xff0c;我是阿可&#xff0c;微赚淘客系统及省赚客APP创始人&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在拼多多返利app的…