MYSQL数据库的概念和sql语句

news2024/9/29 9:30:14

数据是什么

数:数字信息

据:属性或某种凭据

数据:对一些列对对象的具体属性的描述信息的集合。

数据库是什么

数据库:就是用来组织 (按照规则组织起来的) ,存储和管理 (对数据的增、删、改、查) 数据的仓库。

数据库是企业的重要信息资产。使用数据库时要注意(查和增无所谓,但是删和改要谨慎!

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

mysql工作过程和数据流向图:

数据库的组成

数据库是一个系统,是一个人机系统、硬件、os操作系统、数据库、DBMS管理系统和数据库的用户。

用户是通过DBMS(各种数据库软件)来对数据库进行操作

数据库的分类

mysql:关系型数据库

redis:非关系型数据库 es

关系型数据库

存储数据的结构是一个二维表格

表:行 列

行:记录,用来藐视一个对象的信息

列:字段,用来描述对象的一切属性

mysql(中小型的数据库并发请求 免费)

oracle(大数据量还是用它)

sql-server(已淘汰)

maria DB

postgresql

在关系型数据库当。表里面的数据是关联的,表和表之间的数据也是关联起来的。

非关系型数据库

保存数据不是一张表格。是键值对的形式来保存的。key---->value ky32=12 本身之间没有任何关联

redis:缓存性的数据库

es:索引型数据库

MongDB:文档型数据库

既然有关联查询速度相对来说:

关系型数据库查询速度更慢一些

非关系型数据库可以支持高并发读写。对海量数据依旧保持着高效率的存储和访问。

企业常用的数据库架构形式:

MYSQL数据库的存储引擎

5.5之前:MYSAM,不支持事务的外键的存储引擎。适用于读的多,写得好。

2.6之后默认的存储引擎:inodb,可以支持事务可以支持外键,行级锁定的存储引擎。支持高并发性能的应用。

事务

事务:在数据库当中,一个或者多个操作组成的数据操作的序列。这些操作要么全部成功,失败一个就全部不执行。确保数据的一致性和完整性。

事务的特点

原子性:数据库最小工作单元,要么全部执行成功,要么全部不执行。只要有一个操作失败整个执行的序列都会被回滚。哪怕是完成的操作也会被撤销。

一致性:事务执行前后,数据库的完整性不能被破坏。只有在满足所有的约束条件情况下,事务才能被提交。

隔离性:事物的执行时相互隔离。一个事务的执行不能受到其他执行事务的干扰。在并发事务之间互相隔离。防止数据不一致的情况发生。

持久性:事务一旦提交,他所做的所有修改会被永久保存在数据库中。即使系统崩溃,提交的数据库也不丢失。

确保数据库始终处于一致性的状态,确保数据的完整和一致

mysql的名词

1、 数据库:database

2、 表:tab 行:row 列:column

3、 索引:index

4、 视图:view

5、 存储过程:procedure

6、 触发器:trigger

7、 用户:user

8、 权限:privilege

mysql的语句规范

在数据库系统中,sql不区分大小写,但是建议大写

语句不区分大小写,表名严格区分大小写

sql语句可以单行也可以多行书写,但是默认都以;结尾

换行的规则

关键词不能跨行或者简写

子语句通常位于度路航,便于编辑,提高可读性。

数据库的命名规则

必须以字母为开头,后面可以包含数据,特殊字符:# 和 _ 和 $

不要使用mysql的保留字来命名:table、select 等

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

数据库的字符类型

常用的字符类型:

1、 init:占用4个字节。用来存储整数。

2、 char:固定长度的字符串。用来存储固定长度的字符串。

3、 varchar:可变长度的字符类型。用来存储可变长度的字符串。(是无限制的随便写,也要根据类型的长度)

4、 float(m,d):单精度浮点,存储浮点数,m表示总位数,d表示小数位

5、 duble(m,d):双精度浮点数,存储浮点数,m表示总位数,d表示小数位

6、 text:用于存储大文本数据。文档或者长字符串。

7、 image:二进制存储图像。图片、多媒体等。

8、 decimal(5,2):用于存储固定精度的小数,其中5表示总位数,2表示小数位。

9、 date:存储日期:yyyy-mm-dd

10、 datetime:存储日志 YYY-MM-DD HH:MM:SS

11、 timestamp:和datetime格式一致,可以自动更新为当前的时间戳。

重点:

char:' 空格 '固定占4个字节。'ab' 'ab ' 4个字节

varchar:' 空格 '只占用1个字节。 'ab ' 3个字节

char:无论你是否定义了值,都会占用固定长度的字节大小。如果设置了8个哪怕只写了4个也算作把8个占满

varchar:在保存时,varchar 14 实际上长度是5 就占用5个,加一个隐藏符一共6个

varchar比char节省磁盘空间但是varchae读写速度比char慢

sql语句的分类

DDL语句

DDL:数据定义语言,用于创建数据库的对象。创建库、表、索引。都属于数据定义语言。CREATE DROP ALTER

CREATE :创建

DROP :删除

ALTER:修改

show global variables like 'port'; 
#查看数据库当前使用的端口

show databases;
#查看当前数据库中有多少库

use mysql; #使用库

show tables; #查看mysql当中有哪些表

describe user;
#查看表结构
desc user;
#简写

describe user\G;
#纵向查看
desc user\G;
#简写

create database yy; 
#创建库名为yy

show databses; 
#查看有多少库

use yy; 
#查看库yy

create table yy (id int(4) not null,name varchar(10) not null,sroce decimal(5,2),passwd char(48),primary key(id)); 
#创建表

show databases;

drop tables yy; 
#删表

drop database yy; 
#删库

desc yy; 
#查看表结构

null和空格的区别

null是什么都没有,对象没有任何的描述信息。

空格:也是字符

insert into yy values(1,'zyg',null,' ');

select * from yy where sroce is not null;

DML语句

数据操作语句,对表中的数据进行管理

select:查看表格式
select * from 表名; 
#查看表格式

update:更新
update zyg set passwd=password('000') where id =4 ;

insert:添加
insert into zyg (id,name,sroce,passwd) values(1,'章鱼哥',90,'123');

insert into zyg values(2,'章鱼哥2',95,'456');

insert into zyg values(4,'章鱼哥4',95,password('666')); 
#加密处理密码

delete:删除 对表进行删除操作
delete from zyg where id = 5;

DQL语句(面试会问)

查询数据记录

select

select * from zyg where id = 8;

select * from zyg limit 4,7; 
#从第四行开始向下走3行

select * from zyg limit 2; 
#显示前2行

select distinct sroce from zyg;
#去重查询。压缩重复的行为1行

select distinct id,name,sroce from zyg;
#id去重

select distinct name,sroce from zyg;
#所有条件去重

select distinct name from zyg;
#name去重

alter table 原表名 rename 新表名;
#改表名

alter table zyg add birth date;
#添加新信息

update zyg set birth=date('2000-8-24') where id = 3;
#更新信息

alter table zyg change birth birthday datetime;
#更改表信息

alter table zyg drop birthday;
#删除表信息

alter table zyg modify column passwd varchar(52);
#修改字段类型

DCL语句

数据控制语言,设置或者更改数据库用户的权限

GRANT:赋予权限

REVOKE:取消权限

TCL语句

事务控制语句,管理数据库当中的事务。

commit:确认提交事务

ROLLBACK:在提交事务之后无法回滚

savepoint:保存点,可以回滚。

思考题

多表关联最多可以关联几张表?

多表关联最多三张表

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

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

相关文章

【C++】set multiset

文章目录 前言1.set介绍2.set的使用3.multiset介绍4.multiset的使用 前言 知识铺垫:关联式容器和值键对概念 链接-【C】关联式容器 & 键值对(概念介绍) 1.set介绍 set文档 翻译: set是按照一定次序存储元素的容器&#xff…

2023年安全生产监管人员证考试题库及安全生产监管人员试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2023年安全生产监管人员证考试题库及安全生产监管人员试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试…

typedef复杂函数接口的解释

文章目录 typedef定义函数解释interface.h接口1、函数定义2、函数实现加载动态链接库3、sdologinentry.dll或者sdologinentry64.dll动态链接库哪个工程生成的并导出三个接口函数4、sdologinsdk.dll或者sdologinsdk64.dll动态链接库哪个工程生成并导出三个接口函数 typedef定义函…

redis爆满导致数据丢失

记一则redis爆满导致数据丢失的一场事故 某功能上线后,发现出现问题,最后定位到了 redis. 由于存储的数据过多,导致阿里云4G大小的 redis 爆满,触发了回收策略。 于是临时扩容,运维同学当时未找到阿里云配置。 后面我用工具连接了…

微服务-Feign

文章目录 Feign介绍Feign的基本使用自定义Feign的配置Feign性能优化Feign最佳实践 Feign介绍 RestTemplate远程调用存在的问题:代码可读性差,java代码中夹杂url;参数复杂很难维护 String url "http://userservice/user/" order.g…

常见MySQL数据库无法启动的解决方案

前言: 数据库无法启动是在运维中常见的问题,大多是重启服务器、磁盘损坏、配置不当导致的。建议您在面板计划任务中做个数据库全部备份的计划任务,这样在遇到问题的情况下可以及时通过备份进行恢复。 在根据下面的案例尝试恢复或者启动数据库…

dedecms 文件上传(CVE-2019-8933)

dedecms 文件上传(CVE-2019-8933) 漏洞简介 远程攻击者可通过在添加新模板时,将文件名…/index.html更改成…/index.php利用该漏洞向uploads/目录上传.php文件并执行该文件。 后台路径:/uploads/dede/ 后台密码:admi…

贪心算法学习——最大数

目录 ​编辑 一,题目 二,题目接口 三,解题思路级代码 一,题目 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大…

WEB使用百度地图展示某地地址

第一步 进入百度地图开发平台 百度地图开放平台 | 百度地图API SDK | 地图开发 第二步注册 获取AK秘钥,点击【创建应用】进入AK申请页面,填写应用名称,务必选择AK类型为“浏览器端”,JS API只支持浏览器端AK进行请求与访问 下面…

AVM赛道研究:预计2024年渗透率突破50%!下一个破局点在哪儿?

作为一个典型的基础智能化细分赛道,全景环视(AVM)的发展历程值得市场借鉴。 这其中的原因包括,①对比渗透率仍处低位的高阶智驾,单一AVM赛道的产品基本进入成熟期(渗透率继续高歌猛进)&#xf…

《算法通关村—如何基于数组(或者链表)实现栈》

《算法通关村—如何基于数组(或者链表)实现栈》 理解什么是栈 栈和队列是比较特殊的线性表,又称之为访问受限的线性表。栈是很多表达式、符号等运算的基础,也是递归的底层实现。理论上递归能做的题目栈都可以,只是有…

NLog详解

目录 1.简介 2.项目中使用NLog 2.1 快速使用NLog 2.2 通过配置文件使用NLog 3.NLog配置参数详解 3.1 全局配置 3.2 根元素 3.2.1 targets 3.2.1.1 layout 3.2.2 rules 3.2.3 extensions 3.2.4 include 3.2.5 variable 4.附录 1.简介 NLog是一个基于.NET平台编写…

【C++代码】分糖,分饼干,摇摆序列,贪心算法--代码随想录

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划。贪心算法一般分为如下四步: 将问题分解为若干个子问题找出适合的…

Shell 邮件发送告警测试

1.先编辑mail配置文件 #cat /etc/mail.rc#开启ssl set ssl-verifyignore#证书目录,下方为centos系统证书默认位置,也自行生成证书并指定 set nss-config-dir/etc/pki/nssdb# 配置的第三方smtp服务器的地址及端口 set smtpsmtps://smtp.163.com:465 # 认…

<多线程章节二>创建线程的几种常见方式

文章专栏 本篇文章收录于多线程,也欢迎翻阅博主的其他文章,可能也会让你有不一样的收获😄 💡JavaSE语法 💡数据结构 💡多线程 💡专栏导读 操作系统提供了一些API来操作线程,Java针对…

python把ChestX-Det-Dataset的json样本转为COCO数据集的json格式

ChestX-Det-Dataset数据集网址:https://github.com/Deepwise-AILab/ChestX-Det-Dataset/tree/main 数据集JSON内容: [{"file_name": "36199.png","syms": [],"boxes": [],"polygons": []},{"f…

分享一下怎么做陪诊小程序

在当今快节奏的社会中,人们的生活压力越来越大,尤其是在大城市中,由于工作繁忙,生活节奏快,很多人都感到看病难、看病贵的问题。为了解决这一问题,陪诊小程序应运而生。陪诊小程序是一种可以提供线上预约、…

基于SSM民宿预订及个性化服务系统-计算机毕设 附源码 04846

SSM民宿预订及个性化服务系统 摘 要 伴随着国内旅游经济的迅猛发展民宿住宿行在国内也迎来了前所未有的发展机遇。传统的旅游模式已难以满足游客日益多元化的需求,随着人们外出度假的时间越来越长,导致人们在住宿的选择上更加追求舒适、个性化的住宿体验…

vue+Fullcalendar

vueFullcalendar: vueFullcalendar项目代码https://gitee.com/Oyxgen404/vue--fullcalendar.git

CSS样式(盒子模型,内外边距等设置)

盒子模型 目标:掌握盒子模型组成部分,使用盒子模型布局网页区域 01-选择器 结构伪类选择器 基本使用 作用:根据元素的结构关系查找元素。 选择器说明E:first-child查找第一个E元素E:last-child查找最后一个E元素E:nth-child(N)查找第N个E…