Mysql数据库和Sql语句

数据库管理:

sql语句:数据库用来增删改查的语句(重要)

备份:数据库的数据进行备份

主从复制、读写分离、高可用(重要)

Mysql数据库和Sql语句

一、Mysql数据库

1、数据库:组织、存储、管理数据的仓库

2、 数据库的管理系统(DBMS):实现对数据有效组织、管理和存取的系统软件

3、数据库软件:

mysql、oracle(大数据系统一般使用、大企业使用)、sql-server、MariaDB也是mysql mysld、postgreSQL(大象数据库)

4、关系型和非关系型数据库:

关系型数据库:mysql、oracle、postgreSQL

非关系型数据库:

关系型数据存储的结构:是一张二维的表格,表里面有行和列

列:是对象、字段

行:对象的信息、字段的属性

行+列组成一张表

只有关系型数据库才有表

非关系型数据库:

缓存型数据库:Redis

索引型数据库:ES

文档型数据库:MongoDB

键值对形式存储的结构

key value

test1=3

5、关系型和非关系型数据库优缺点:

关系型优点:表的结构清晰、逻辑容易整理、记录的数据比较完整

关系型缺点:读写速度比较慢、并发量差、数据迁移比较麻烦

非关系型数据库优点:可以进行高并发读写、对海量数据依旧可以保持高效率的存储和访问、

架构可扩展

非关系型数据库缺点:键值对形式储存,数据逻辑比较复杂,数据保存咋缓存当中(redis),如果意外重启所有数据都会丢失

6、mysql的数据类型:

char:固定长度的字符类型、用于存储固定长度的字符串

char定义好了长度之后,不论写的值是多少,多会占用固定长度的字节大小,保存咋及磁盘上都是四个字节

varchar:可变长度的字符类型、存储的是可变长度的字符串

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-MMM-DD HH:MM:SS

timestamp:时间戳,和datetime类似,但是它可以自动记录当前时间

smallint:存储小整数

bigint:存储大整数

decimal(5,2):也是存储浮点数,存储精度的浮点数,5表示总位数,2表示小数位

二、数据库的管理:Sql语句

增删改查-----------sql语句

1、sql中的一些名词

数据区:database

表:table

行:row

列:column

索引:index

视图:view

用户:user

权限:privilege

存储过程:procedure

存储函数:function

调度器:event

2、sql的语言规范

在数据库系统中,

sql的语句是不区分大小的,但是建议使用大写,

sql语句可以单行或者多行,但是结尾必须以英文的分号结束

3、sql的命令规范:

库名、表名、列的名字,必须以字母开头、后面可以是数字,也可以跟上特殊符号

不要使用mysql的保留字符,如table、database、select、show

数据库、表名、用户名严格区分大小写

4、sql语言的分类

DDl(数据库定义语言):创建数据库的对象语言、库、表和索引等等,如:create drop

DML(数据库操作语言):对表里面的数据进行管理,如:select、update、insert、delete

DQL(数据库查询语言):数据库的查询语句,如:select

DCL(数据控制语言):控制和管理数据库用户的角色和权限。如:grant、revoke

TCL(事务控制语句):用来管理数据库的事务,用于脚本开发、存储过程等等,如:commit、rollback、savepooint

DDL:创建库和表的语句

在这里插入图片描述

# 一条数据库的语句是连贯的,以分号为结尾表示一条完整的sql语言,但是太长了,不方便阅读和理解,我们可以对一条语句进行分行的写法但是关键词不能跨行
CREATE TABLE student (
id int (4) not null,
# 定义表的列的属性,数据类型和是否为空;
name char (10) not null,
score decimal (5,2)
);

命令行:desc student; (展示student的详细信息)

​ desc student\G; (纵向展示信息)

±-----±----±--------±------+
| Null | Key | Default | Extra |
±-----±----±--------±------+
| NO | | NULL | |
| NO | | NULL | |
| YES | | NULL | |
±-----±----±--------±------+

key:表示是否是主键或者外键

default:如果没有数据的默认展示结果

extra:提供列的附加信息

5、删库和删表

删库:DROP database xy102;
删表:DROP tables student;

三、DML和DQL 管理语句和查询语句

1、DML:insert 插入数据

DML:insert 插入数据
insert into 表名(字段1,字段2,字段3) values(1,2,3);insert into student(id,name,score) values (1,'赵氏',99.98);
insert into student values (2,'钱氏',99.66);
insert into student values (3,'孙氏',99.33);
insert into student values (4,'李氏',null);insert into student values (null,null,null);
# 此时会报错,因为id和name不能为空insert into student values (5,' ',null);
# 此时表示空值,不同于null的为空insert into student values (6,'吴氏',88.88);select * from student where score is null;
# 可以检索到score为null的行select * from student;desc student;null和空值之间的区别:null就是啥也没有,就是为空,空值也是值,只是值是空

在这里插入图片描述

表明:null为NO表示不能为空,为YES表示可以为空,这里表示id和name不可以为空,score可以为空。

2、修改和更新

修改和更新:
# ps:只能对已有数据进行更新和修改
update   # 语法
update 表名 set 列名=值 where 条件;update student set score=90 where id=4
select * from student;
# 此时4 李 的score为90update student set name='周 where id=5;
select * from student;
# 此时5 score为99.22 的name为周

3、delete删除表的数据

delete删除表的数据
delete from 表名 where 条件;delete from student where id=2;
select * from student
# 此时第二行 2 '钱' 99.66被删除,其他id不变,因为这个值是由我们自己设置生成的

4、DQL语句,查询语句:select

DQL语句,查询语句:
select * 
# *表示所有列select score from student;
# 查询score列,生成结果为core的列select name,score from student;
# 查询name和score的列,生成为那么在前,score在后的列查看指定行:
select * from student limit 2,3;
# 表示显示第二行之后的三行# 显示第一行到第三行
select * from student limit 0,3;# 如何进行去重查询
select distinct name from student;
# 指定去除重复的name
# 只能指定一个内容进行查重,不能指定多个内容进行查重

5、where语句:就是条件的筛选

where语句:就是条件的筛选,select * from student;select * from student where id=7;
# 筛选出id为7的行
# 筛选出id为7且score为88.88的行
select * from student where id=7 and score=88.88;# and 表示逻辑且的意思  or 表示逻辑或的意思

6、模糊查询:like

模糊查询:
likeselect * from student where name like '赵%';
# 以什么(赵)为开头select * from student where name like '%氏';
# 以什么(氏为结尾select * from student where name like '%氏%';
# 只有包含(氏)即可

7、修改表名和表的结构:alter

# ALTER 修改表名和表的结构
如何修改表名
alter table student rename stu01;
# 修改后刷新,查看表名变为stu01如何给表添加一列
alter table stu01 add address varchar(50)default '地址不详细';
select * from stu01;
# 此时新增一列为address 地址不详# 修改字段的数据类型
alter table stu01 modify column address char(10);# 删除例
alter table stu01 drop address;# 修改列的名称
alter table stu01 change name username char(10);
# 后面一定要加数据类型,不然会报错
# 修改前为name 修改后为username
desc stu01;

table stu01 add address varchar(50)default ‘地址不详细’;
select * from stu01;

此时新增一列为address 地址不详

修改字段的数据类型

alter table stu01 modify column address char(10);

删除例

alter table stu01 drop address;

修改列的名称

alter table stu01 change name username char(10);

后面一定要加数据类型,不然会报错

修改前为name 修改后为username

desc stu01;


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

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

相关文章

Java基础(四) 内部类详解

Java 内部类详解 一. 内部类概述 内部类是嵌套在类内部进行定义的类,其外部的类则被称为外部类;按照内部类的定义位置,内部类可进一步划分为成员内部类、静态内部类、局部内部类和匿名内部类四种类型。内部类的出现实际上是进一步丰富了类的…

Modbus转BACnet/IP网关的技术实现与应用

引言 随着智能建筑和工业自动化的快速发展,不同通信协议之间的数据交换也变得日益重要。Modbus和BACnet/IP是两种广泛应用于自动化领域的通信协议,Modbus以其简单性和灵活性被广泛用于工业自动化,而BACnet/IP则在楼宇自动化系统中占据主导地…

Android APP 音视频(03)CameraX预览与MediaCodec编码

说明: 此CameraX预览和编码实操主要针对Android12.0系统。通过CameraX预览获取yuv格式数据,将yuv格式数据通过mediacodec编码输出H264码流(使用ffmpeg播放),存储到sd卡上。 1 CameraX 和 MediaCodec简介 1.1 CameraX…

“微软蓝屏”事件,给IT行业带来的宝贵经验和教训

“微软蓝屏”事件是指2024年7月19日发生的一次全球性技术故障,主要涉及微软视窗(Windows)操作系统及其相关应用和服务。 以下是对该事件的详细解析: 一、事件概述 发生时间:2024年7月19日事件影响:全球多个…

【科学文献计量】中国知网(CNKI) 文献素材库生成软件详细使用说明

CNKI 文献素材库生成软件制作 1 背景2 使用步骤2.1 文献检索2.2 文献导出2.3 软件生成1 背景 在进行中文文献的综述时,往往是要借助中国知网(CNKI)文献检索平台,写作插入文献时会用Endnote软件进行辅助。因此就有需求:对于CNKI检索的结果直接导出到本地,第一是方便快速阅…

基于STM32的农业大棚温湿度采集控制系统的设计

目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 🤞大家好,这里是5132单片机毕设设计项目分享,今天给大家分享的是智能教室。 设备的详细功能见网盘中的文章《8、基…

“机器说人话”-AI 时代的物联网

万物互联的物联网愿景已经提了许多年了,但是实际效果并不理想,除了某些厂商自己的产品生态中的产品实现了互联之外,就连手机控制空调,电视机和调光灯都没有实现。感觉小米做的好一点,而华为的鸿蒙的全场景,…

C#+layui+echarts实现动态生成折线图

概要 C#layuiecharts实现动态生成折线图 整体架构流程 后端是c#语言编写的业务流程,前端是layui和echarts 技术细节 1.先看echarts折线图需要什么样子的数据,在想后端怎么处理 2.后端代码 List<ValveTempData> list new List<ValveTempData>(); string …

Docker容器逃逸漏洞-CVE-2024-21626

Snyk 在 Docker 引擎以及其他容器化技术(例如 Kubernetes)使用的 runc <=1.1.11 的所有版本中发现了一个漏洞。利用此问题可能会导致容器逃逸到底层主机操作系统,无论是通过执行恶意映像还是使用恶意 Dockerfile 或上游映像构建映像(即使用时FROM) CVE-2024-21626原理…

生成式人工智能之路,从马尔可夫链到生成对抗网络

人工智能&#xff08;Artificial intelligence&#xff0c;AI&#xff09;技术在过去几年中取得了显著进展&#xff0c;其中生成式AI&#xff08;Generative AI&#xff09;因其强大的内容生成能力而备受关注。生成式AI可以创建新的文本、图像、音频、视频、代码以及其他形式的…

SSRF学习笔记

1.NAT学习 Nat&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;是 一种网络通信技术主要用于将私有网络中的内部IP地址转换成公共网络中的公共IP地址&#xff0c;以实现局域网内部设备访问互联网的功能。具体来说&#xff0c;Nat有以下几个主要…

Matlab画不同指标的对比图

目录 一、指标名字可修改 二、模型名字可修改 三、输入数据可修改 软件用的是Matlab R2024a。 clear,clc,close all figure1figure(1); % set(figure1,Position,[300,100,800,600],Color,[1 1 1]) axes1 axes(Parent,figure1);%% Initialize data points 一、指标名字可修…

MongoDB 学习笔记

一、简介 1、MongoDB 是什么 MongoDB 是一个基于分布式文件存储的数据库&#xff0c;官方地址 https://www.mongodb.com/ 2、数据看是什么 数据库&#xff08;DataBase&#xff09;是按照数据结构来组织、存储和管理数据的应用程序。 3、数据库的作用 主要作用是 管理数据…

mybatis中的缓存(一级缓存、二级缓存)

文章目录 前言一、MyBatis 缓存概述二、一级缓存1_初识一级缓存2_一级缓存命中原则1_StatementId相同2_查询参数相同3_分页参数相同4_sql 语句5_环境 3_一级缓存的生命周期1_缓存的产生2_缓存的销毁3_网传的一些谣言 4_一级缓存核心源码5_总结 三、二级缓存1_开启二级缓存2_二级…

基于Hutool实现自定义模板引擎,实现json个性化模板引擎转换

文章目录 前言编写引擎类&#xff1a;JsonTemplateEngine编写模板类&#xff1a;CustomTemplate编写测试代码测试json文件测试类 前言 由于百度搜索json模板引擎&#xff0c;推荐的都是一些freemarker之类的&#xff0c;需要引入其他的依赖&#xff0c;而且在编写json模板的时…

学习在测试时学习(Learning at Test Time)_ 具有表达性隐藏状态的循环神经网络(RNNs)

摘要 https://arxiv.org/pdf/2407.04620 自注意力机制在长文本语境中表现良好&#xff0c;但其复杂度为二次方。现有的循环神经网络&#xff08;RNN&#xff09;层具有线性复杂度&#xff0c;但其在长文本语境中的性能受到隐藏状态表达能力的限制。我们提出了一种新的序列建模…

LabVIEW多线圈电磁式振动发电机测试

开发了一种基于LabVIEW设计的多线圈电磁式振动发电机测试系统。系统通过高效的数据采集、波峰检测及相位差计算&#xff0c;优化了传统振动发电机的测试流程&#xff0c;提升了电压波形分析的精度和效率&#xff0c;具有较好的应用前景和推广价值。 项目背景 随着可再生能源技…

遇到not allow unquoted fieldName怎么办

前言 Exception in thread "main" com.alibaba.fastjson2.JSONException: not allow unquoted fieldName, offset 2, character , line 1, column 3, fastjson-version 2.0.25 { "data":null, "code":200, "msg":"成功"…

LIS系统源码,实验室管理信息系统LIS,.Net C#语言开发,支持DB2,Oracle,MS SQLServer等主流数据库

实验室管理信息系统LIS源码&#xff0c;采用.Net C#语言开发&#xff0c;C/S架构。支持DB2&#xff0c;Oracle&#xff0c;MS SQLServer等主流数据库。&#xff08;LIS系统全套商业源码&#xff0c;自主版权&#xff0c;多家大型综合医院应用案例&#xff0c;适合二次开发&…

Golang | Leetcode Golang题解之第279题完全平方数

题目&#xff1a; 题解&#xff1a; // 判断是否为完全平方数 func isPerfectSquare(x int) bool {y : int(math.Sqrt(float64(x)))return y*y x }// 判断是否能表示为 4^k*(8m7) func checkAnswer4(x int) bool {for x%4 0 {x / 4}return x%8 7 }func numSquares(n int) i…