Mysql基础与安装
一、数据库的概念和相关的语法和规范
1、数据库的概念
数据库:组织,存储,管理数据的仓库。
数据库的管理系统(DBMS):实现对数据有效组织,管理和存取的系统软件。
数据库的种类:
mysql 、oracle 大数据系统一般使用、 sql-server、 MariaDB 也是mysql 也叫mysqld 、 postgreSQL 大象数据库。
2、关系型数据库和非关系型数据库
关系型数据库:mysql oracle postgreSQL
关系型存储的结构:是一张二维的表格,表里面有行和列
列:是对象,字段
行:对象的信息,字段的属性
行+列组成一张表
非关系型数据库:
缓存型数据库:arredis
索引型数据库:ES
文档型数据库:MongoDB
键值对形式存储的结构 key value
关系型数据库和非关系型数据库优缺点:
关系型的优点:表的结构清晰,逻辑容易整理,记录的证据比较完整。
缺点:读写速度比较慢,并发量差,数据迁移比较麻烦。
非关系型数据库:
优点:可以进行高并发读写,对海量数据依旧可以保持高效率的存储和访问,架构可拓展
缺点:键值对形式存储,数据逻辑比较复杂,数据是保存子在缓存(内存)当中的(redis)如果意外重启所有数据都会丢失。
3、mysql的数据类型
char:固定长度的字符类型,用于存储固定长度的字符串。
varchar:可变长度的字符类型,存储的是可变长度的字符串。
char定义好了长度之后,不论写的值多少,都会占用固定长度的字节大小,保存在磁盘上都是接点字节。
varchar 在保存字符串是时,多少就是保存多少,在保存的字符串结尾默认有一个隐藏的结束符,会多占一个字节。
varchar比char节约磁盘。
读写速度方面:
char的读写性能高于varchar,char是连续的磁盘空间,保存的内容是连续的。
varchar在增删改查之后,会产生一个磁盘空间的碎片文件,影响读写性能。
int :存储的数据类型为整数。
float:浮点数,小数点(float(m:d))m表示总位数,d表示小数位数。
double:双精度浮点数,(double(m:d))m表示总位数,d表示小数位数。
date类型用于存储日子,YYYY-MM-DD datetime用来存储日期和时间 YYYY-MM-DD HH:MM:SS timestamp和dateime类型,但是他可以自动记录当前时间。
decimal(5,2)存储浮点数,压精度的浮点数,5表示总数位,2表示小数位。
4、数据库的管理
增删改查-----------sql语句
sql中的名词:
数据库:database
表:table
行:row
列:column
索引:index
视图:view
用户:user
权限:privilege
存储过程:procedure
存储函数:function
调度器:exent
5、sql的语言规范
在数据库系统中,sql语言不区分大小写的,但是建议用大写。
sql语句可以单行也可以多行,但是必须要以“;”结尾。
命名规范:库名,表名,列的名字,必须都是字母开头,后面可以数字。后面也可以跟上特殊符号。
不要使用mysql的保留字,table select show。
数据库,表面,用户名严格区分大小写。
6、sql语言的分类
1、DDL 数据库定义语言:创建数据的对象语言,库,表和索引等等
create drop
2、DML:数据库操作语言,对表里面的数据进行管理
select update insert delete
3、DQL:数据库查询语言,数据的查询语句
select
4、DCL数据控制语言,控制和管理数据用户的角色和权限。
grant 赋权 revoke取消权限
5、tcl事务控制语言,用来管理的数据库的事务,脚本开发,存储过程等等
commit rollback savepoint
二、数据库安装
安装使用的是绿色硬盘版本,无需额外安装依赖环境,也不需要麻烦的编译安装,因为比较简单
将安装包拖进/opt目录下
cd /opt
tar -xf mysql安装包
mv 解压出的目录 /usr/local/mysql
#创建程序用户
useradd -M -s /sbin/nologin mysql
#mysql的主配置文件设定所属用户和组
chown -R mysql.mysql /usr/local/mysql/
chown mysql.mysql /etc/my.cnf
修改配置文件
vim /etc/my.cnf
[client]
port = 3306
#客户端访问的端口
socket=/usr/local/mysql/mysql.sock
#指定MySQL的通信套接字文件[mysqld]
user = mysql
basedir=/usr/local/mysql
#MySQL的安装目录
datadir=/usr/local/mysql/data
#MySQL数据保存的目录
port = 3306
#服务端的端口
character-set-server=utf8
#字符集的编码
pid-file = /usr/local/mysql/mysqld.pid
#pid文件位置
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
#表示任意地址都可以访问数据库
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
#MySQL默认的存储引擎
max_allowed_packet=16M
server-id = 1
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#MySQL支持的数据类型和相关的模块
设置环境变量,声明/宣告MySQL命令便于系统识别:
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
初始化数据库:
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
设置系统识别,进行操作:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
systemctl daemon-reload
systemctl restart mysqld
这样一个数据库就安装成功了。
三、使用数据库(增删改查)
1、基础操作
初始化数据库密码:
mysqladmin -u root -p password "123456"
#在交互界面直接回车,不要输入!
进入数据库:
mysql -u root -p123456
#进入数据库交互界面
show databases;
#创建用户并设置密码
create user 'root'@"%" identified by '123456';
#赋予远程连接的权限
grant all privileges on *.* to 'root'@'%';
#刷新生效
flush privileges;
#修改加密方式,可以进行远程连接
alter user 'root'@'%' identified with mysql_native_password by "123456";
exit;
这就可以使用本地的数据库软件进行连接。
创建一个表
CREATE table stu03(
#表名是stu03
id int(5),
name char(10),
date_time date not null,
#不能为空
data_times datetime,
date_time1 timestamp not null,
PRIMARY KEY (id)
);
添加一条数据
INSERT into stu03 VALUES(1,2,'2024-07-08','2024-09-08 09:09:00',NOW());#插入数据
查看效果

删除表
DROP TABLE stu03;
创建表
CREATE TABLE stu (
id int(4) not null,
name CHAR(10) not null,
score decimal(5,2)
);
查看

2、insert插入数据
语法1
insert into 表名(字段1,字段2,字段3)values (值1,值2,值3);
insert into stu (id,name,score) VALUES (1,'zhangsan',87.5);
字符串需要使用单引号引起来。
语法2
insert into 表名 values(1,'lisi',88.7);
查看全部内容
SELECT * from stu; 查询所有
null和空值之间的区别:
null就是啥也没有,就是为空
空值也是值,只是值是空的
3、修改和更新update
update 表名 set 列名=值where 条件;
UPDATE stu set score=90 WHERE id=3;
4、删除delete表的数据
delete from 表面 where 条件;

删除lisi字段
DELETE from student WHERE id=2;
查看
SELECT * from student;

5、 DQL语句,select查询语句


查看指定行limit
SELECT * from student LIMIT 1,3;
表示查询你从第一行开始的后面是三行,包括自己
去重查询

SELECT DISTINCT name FROM student;
去重

不能多个去重
SELECT DISTINCT name,score FROM student;

根据一个条件进行查找
SELECT * from student WHERE id=7;

多个条件逻辑或,只需要有一个成立即可
SELECT * from student WHERE id=7 or score=99;

多个条件逻辑且,必须同时满足,否则为空
SELECT * from student WHERE id=7 and score=99;

SELECT * from student WHERE id=8 and score=99;

模糊查询like

select * from student where name like '王%'; 查询以王为开头的
select * from student where name like '%二'; 以二为结尾
select * from student where name like '%王%'; 包含有王字的

6、 更新alter
alter修改表面和修改表结构

alter table student rename stu;
修改表结构
给表添加一个列
ALTER TABLE stu add address VARCHAR(50) DEFAULT '地址不详';

查看修改字段的数据类型
desc stu;

ALTER TABLE stu MODIFY COLUMN address CHAR(10);
desc stu;

删除列
ALTER TABLE stu DROP address;

修改name列的名称
ALTER TABLE stu change name uname char(10);

相关文章:
Mysql基础与安装
一、数据库的概念和相关的语法和规范 1、数据库的概念 数据库:组织,存储,管理数据的仓库。 数据库的管理系统(DBMS):实现对数据有效组织,管理和存取的系统软件。 数据库的种类: m…...
线程的死锁和并发安全
在多线程编程中,线程的死锁和并发安全是两个重要的概念。理解这两个概念并正确地管理它们,对于编写高效且可靠的并发程序至关重要。 线程的死锁 死锁(Deadlock) 是指两个或多个线程相互等待对方释放已经持有的资源,导…...
docker 启动提示can not create sys fs cgroup cpuset....问题处理
docker 启动失败 报错 大概报错内容为 cgroup :no such file can not create /sys/fs/cgroup/cpuset … 问题是因为 /sys/fs/cgroup/ 没有被正确挂载 cgroup 是实现资源限制的工具 docker 能够进行限制cpu 内存 大小 依赖cgroup ll /sys/fs/cgroup/ 发现一个都系也没有 m…...
[C/C++入门][ifelse]19、制作一个简单计算器
简单的方法 我们将假设用户输入两个数字和一个运算符(、-、*、/),然后根据所选的运算符执行相应的操作。 #include <iostream> using namespace std;int main() {double num1, num2;char op;cout << "输入 (,-,*,/): &quo…...
API取数实战:企业微信API取数教程
在数字化时代,企业微信不仅是一个通讯工具,更是企业数字化转型的重要平台。通过企业微信,企业能够高效连接员工、客户与合作伙伴,实现内部流程的自动化和智能化。本文将介绍企业微信API的应用场景和应用难点,并提供企业…...
AI算法18-最小角回归算法Least Angle Regression | LARS
最小角回归算法简介 最小角回归(Least Angle Regression, LAR)是一种用于回归分析的统计方法,它在某些方面类似于最小二乘回归,但提供了一些额外的优点。最小角回归由Bradley Efron等人提出,主要用于处理具有…...
wordpress 调用另外一个网站的内容 按指定关键词调用
要在WordPress中调用另一个网站的内容并根据指定关键词进行筛选,你可以使用以下代码。这段代码使用了WordPress内置的wp_remote_get函数来获取远程网站的内容,然后使用PHP的DOMDocument和DOMXPath类来解析HTML并筛选出包含指定关键词的内容。 首先&…...
kotlin数据类型
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 Kotlin基本数值类型 基本数据类型包括 Byte、Short、Int、Long、Float、Double 整数类型 类型位宽最小值最大…...
[GWCTF 2019]babyvm
第一次接触VM逆向 先粘一下对我很有帮助的两篇佬的博客 系统学习vm虚拟机逆向_vmp 虚拟机代码逆向-CSDN博客 这篇去学习vm逆向到底是什么 我的浅显理解啊,就是和汇编的定义差不多,规定一个函数,用什么其他的名字 然后这道题 [GWCTF 2019]babyvm 详解 (vm逆向 …...
PyTorch论文
2019-12 PyTorch: An Imperative Style, High-Performance Deep Learning Library 设计迎合4大趋势: 1. array-based (Tensor) 2. GPU加速 3. 自动求导 (Auto Differentiation) 4. 拥抱Python生态 4大设计原则: 1. 使用算法和数据开发者熟悉的Python做编…...
【Python实战因果推断】37_双重差分8
目录 Diff-in-Diff with Covariates Diff-in-Diff with Covariates 您需要学习的 DID 的另一个变量是如何在模型中包含干预前协变量。这在您怀疑平行趋势不成立,但条件平行趋势成立的情况下非常有用: 考虑这种情况:您拥有与之前相同的营销数…...
【python学习】第三方库之matplotlib的定义、功能、使用场景和代码示例(线图、直方图、散点图)
引言 Matplotlib 是一个 Python 的 2D 绘图库,它可以在各种平台上以各种硬拷贝格式和交互环境生成具有出版品质的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图等 Matplotlib 是 …...
MySQL(3)表的操作
目录 1. 表的操作; 2. 数据类型; 1. 表的操作: 1.1 创建表: 语法: create table 表名( 属性 类型 [comment ], 属性 类型 [comment ], 属性 类型 ) character set 字符集 collate 校验集 engine 存储引擎; 前面博客提到: MyISAM和InoDB这两个比较重要. 1.2 查看表…...
SQL GROUPING运算符详解
在大数据开发中,我们经常需要对数据进行分组和汇总分析。 目录 1. GROUPING运算符概念2. 语法和用法3. 实际应用示例4. GROUPING运算符的优势5. 高级应用场景5.1 与CASE语句结合使用5.2 多维数据分析 6. 性能考虑和优化技巧7. GROUPING运算符的局限性8. 最佳实践9. GROUPING与其…...
在VS2017下FFmpeg+SDL编写最简单的视频播放器
1.下载ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下,并设置调试命令 5.复制一下mp4视频到工程Debug目录下(复制一份到*.vcxproj同一目录,用于调试) 6…...
LogViewer v2.x更新
logvewer 介绍 logviewer 是一个可以方便开发人员通过浏览器查看和下载远程服务器集群日志,使用ssh方式管理远程tomcat、jar包等应用,节省服务器资源。大家可以下载体验,请勿用于生产环境。欢迎提出意见或建议。 解决的问题 一般情况下公司…...
detection_segmentation
目标检测和实例分割(OBJECT_DETECTION AND INSTANCE SEGMENTATION) 文章目录 目标检测和实例分割(OBJECT_DETECTION AND INSTANCE SEGMENTATION)一. 计算机视觉(AI VISION)1. 图像分类2. 目标检测与定位3. 语义分割和实例分割目标检测算法可以分为两大类: R-CNN生成…...
0基础学python-13:古希腊掌管时间的模块——datetime和time
目录 前言 datetime模块 一、datetime 类 1.创建 datetime 对象 2.获取日期时间的各个部分 3.格式化日期时间为字符串 4.解析字符串为 datetime 对象 二、timedelta 类 1.创建 timedelta 对象 datetime注意事项 time模块 1.获取当前时间戳 2.获取当前时间的结构化表…...
棒球特长生升学具有其独特的优势和劣势·棒球6号位
棒球特长生升学具有其独特的优势和劣势,以下是对这两方面的详细分析: 获得更好的教育资源: 棒球特长生有机会通过棒球特长招生计划进入更好的学校。这些学校往往拥有更优质的教育资源,包括师资力量、教学设施、课程设置等&#…...
搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示
Xsens DOT可穿戴传感器介绍及示例应用演示 搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
