Mysql基础与安装

news2024/9/22 11:31:28

一、数据库的概念和相关的语法和规范

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查询语句

 只看name 和score所在列  

查看指定行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);

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins整合Owasp DependencyCheck实现SCA

简介 Dependency-Check 是 OWASP(Open Web Application Security Project)的一个实用开源程序,用于识别项目依赖项并检查是否存在任何已知的,公开披露的漏洞。 目前,已支持Java、.NET、Ruby、Node.js、Python等语言编写…

ArkTS学习笔记_UI界面的状态管理简述

ArkTS学习笔记_UI界面的状态管理简述 背景: 我们在UI开发中,绝大多数的UI界面都是动态的、有用户交互的,为了实现动态交互,引入了一个概念“状态”,它主要是用来记录管理UI界面的状态变化(数据变化&#x…

【EXCELL技巧篇】使用Excel公式,获取当前 Excel的Sheet页的名字

【通知】: 正式跟大家说个难过的消息,本来在「中国朝代史」结束后,开启的下一个专栏「中国近代史」前面几期做的还好好的,可是今天起正式通知审核不过,因为一些原因。 其实我对于历史这一块我还是很感兴趣的&#xff0…

Abaqus基于CT断层扫描的三维重建插件CT2Model 3D

插件介绍 AbyssFish CT2Model 3D V1.0 插件可将采用X射线等方法获取的计算机断层扫描(CT)图像在Abaqus有限元软件内进行三维重建,进而高效获取可供模拟分析的有限元模型。插件可用于医学影像三维重构、混凝土细观三维重建、岩心数字化等领域…

Qcom平台通过Hexagon IDE 测试程序性能指导

Qcom平台通过Hexagon IDE 测试程序性能指导 1 安装Hexagon IDE工具2 测试工程2.1 打开Hexagon IDE2.2 新建工程2.3 添加测试案例2.3.1 方法一:新建2.3.2 方法二:拷贝 2.4 配置测试环境2.4.1 包含头文件2.4.2 添加程序优化功能(需先bulid一下)2.4.3 添加g…

nodejs安装+踩坑报错解决

下载Node.js安装包 官网下载地址:http://nodejs.cn/download/,根据自己电脑选择32位还是64位, 下载地址 选择合适的版本下载 X86是32位的,X64是64位的,我们一般是下载win版X64的msi文件的是点击可以直接启动安装程序的…

框架设计MVC

重点: 1.用户通过界面操作,传输到control,control可以直接去处理View,或者通过模型处理业务逻辑,然后将数据传输给view。 2.control包含了model和view成员。 链接: MVC框架详解_mvc架构-CSDN博客 MVC架…

使用 Python 爬虫实现自动获取天气信息并语音播报

简介 在本文中,我将介绍如何使用 Python 编写一个简单的爬虫程序,该程序可以自动获取某个城市的天气信息,并使用语音库将这些信息播报出来。我们将使用 pyttsx3 库进行语音播报,以及 requests 和 lxml 库来获取和解析网页数据。 …

深度刨析程序中的指针

前面我们已经学习过了指针的一下性质: 指针就是个变量,用来存放地址,地址唯一标识的一块内存空间指针的大小是固定的4/8个字节(32位平台/64位平台)指针是有类型,指针的类型决定了指针的加减整数的步长&…

C语言------指针讲解(2)

目录 一、数组名的理解 二、使用指针访问数组 三、一维数组传参的本质 四、冒泡排序 五、二级指针 六、指针数组 七、指针数组模拟二维数组 一、数组名的理解 通过学习,我们知道:数组名和数组首元素的地址打印出来的结果一模一样,数组…

C语言函数:编程世界的魔法钥匙(1)

目录 1.C语言中的函数是什么? 2.函数的分类: 2.1 标准库函数 2.1.1 库函数的诞生: 2.1.2 库函数的作用: 2.1.3 如何学习使用库函数 2.2 自定义函数 2.2.1 函数的组成: 2.2.2 自定义函数的优点 2.2.3 例题 3…

Windows下安装Mujoco1.50

Windows下安装Mujoco1.50复现强化学习论文 很多经典强化学习算法(DDPG、PPO)使用Mujoco环境进行实验和评估,配置复现环境非常困难,有以下几点原因: 年代久远,Mujoco-py的依赖管理做的不好,仅限…

Apache trino的ldap认证开启

作者:櫰木 1、背景 由于trino 默认没有开启用户认证体系,需要ldap用户进行认证。开启tls和ldap用户认证,提高安全性。 2、配置 前置条件。 trino 集群已经部署完成 ldap 服务 openjdk 版本大于11.0.17 生成证书 keytool -genkeypair…

实现异步天气数据获取与Spring缓存集成

你好呀,我是小邹。 在Web应用中,实时天气数据的获取是一个常见的需求,特别是在需要频繁更新天气信息的场景下,如旅游网站、天气应用或任何需要展示地理位置相关天气的应用。然而,频繁的外部API调用不仅会增加服务器的…

Hive理论讲解

Hive介绍 1、Hive本质 Hive本质是【数仓设计方案】,hive本身并不存储数据【数据包含:元数据 (表)数据】。 2、hql和sql对比 sql 结构化查询语言【structured query language】hql hive/hadoop类sql查询语言【hive/hadoop query language like sql…

工业三防平板可优化工厂流程管理

在当今高度自动化和数字化的工业生产环境中,工业三防平板正逐渐成为优化工厂流程管理的关键工具。其强大的功能和卓越的性能,为工厂带来了更高的效率、更低的成本以及更出色的质量控制。 工业三防平板,顾名思义,具备防水、防尘、防…

(01)Unity使用在线AI大模型(使用百度千帆服务)

目录 一、概要 二、环境说明 三、申请百度千帆Key 四、使用千帆大模型 四、给大模型套壳 一、概要 在Unity中使用在线大模型分为两篇发布,此篇文档为在Python中使用千帆大模型,整体实现逻辑是:在Python中接入大模型—>发布为可传参的…

eclipse 新建类class文件增加copyright版权信息

1、Window -> Preferences 2、输入code,找到code templates Java > Code Style > Code Templates 比如进行如何的设置: 3、新增类文件,会自动增加版权:

[Vulnhub] digitalworld.local-JOY snmp+ProFTPD权限提升

信息收集 IP AddressOpening Ports192.168.101.150TCP:21,22,25,80,110,139,143,445,465,587,993,995 $ nmap -p- 192.168.101.150 --21,22,25,min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD | ftp-anon: Anonymous FTP logi…

昇思25天学习打卡营第11天|NLP-LSTM-CRF序列标注

打卡 目录 打卡 序列标注 条件随机场(Conditional Random Field, CRF) SCORE计算 SCORE 计算的代码 Normalizer计算 Normalizer 计算的代码实现 Viterbi算法 CRF层组装 BiLSTMCRF模型 模型实例化 模型训练 模型预测 新造一个句子重新预测看效果 序列标注 序列标…