MySQL的概念和sql语句

news2024/12/16 7:43:25

数据库的概念

数据库的概念:数据库是用来组织(各个数据之间是有关联,是按规则组织起来的),存储和管理(增,删,改,查)的仓库

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

数据库是一个系统,一个人机系统。包含硬件,os,数据库,DBMS和数据库的用户共同组成。

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

数据库的分类

随着时代的发展,当今数据库可分为两大类:关系数据库(SQL)非关系数据库(NO SQL)两大类 。

关系型数据库

关系数据库的存储结构是二维表格 ,表是有行和列。行称为记录,是用来描述一个对象的信息。列称为字段,是用来描述对象的一个属性

关系性数据库常见的有:MYSQL ,Oracle,SQL-Server,MariaDB, postgreSQL 

非关系型数据库

缓存性数据库: redis     Memcache

      索引型数据库:  ES(Elasttic search)

      时序型数据库:Prometheus

       文档型数据库:MongoDB

 非关系型数据库:是键对值的存储结构(key ——————>   VALUE)

优点:可高并发读写,对海量数据依旧保持着高效率的存储和访问,具有高扩展性和高可用性
 

mysql数据库的存储引擎

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

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

事物:在数据库当中,一个或者多个操作组成的数据库操作的序列。这些操作要么全都成功,失败一个就全部不执行。

此操作原因:确保数据一致性和完整性

事物的特点:

1.原子性(数据库的最小工作单位),要么全部执行成功,要么全部不执行,只要有一个操作时间,整个执行的序列都会被回滚。完成的操作也会被撤销

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

3.隔离性:事物的执行是相互隔离。一个事物的执行不能收到其他执行事物的干扰。并发事物之间互相隔离,防止数据不一致的情况发生

4.持久性:事物一旦提交他所作的所有修改,会被永久的保存在数据库中。即使系统崩溃,提交的数据也不丢失。确保数据库始终处于一致性的状态。确保数据库的完整性和一致。

Mysql的名词

1.数据库:database

2.  表 : table

     行 : row

     列 : column

3.索引:index

4.视图:view

5.存储过程:procedure

6.触发器:trigger

7.用户:user

8.权限:privilege

mysql的语句规范

在数据库系统中,sql不区分大小写,但是建议大写。语句不区分,但是表名严格区分大小写。

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

关键词不能跨行或者简写。

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

数据库命名规范

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

2.不能使用mysql的保留字作为名字 :table select

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

数据库的字符类型

字符类型用法
int 4个字节,用来存储整数,范围很大
char 只能存取固定长度的字符串,用来存储定长的字符串
varchar 可变长度的字符类型,存储可变长度的字符串。(无限制的可以随便写)
float (m,d)

单精度浮点

m:总长度 d:小数位

double (m,d) 双精度浮点数,存储浮点数 。M是总位置,d表示小数位
text 用于存储大文本数据 ,文档,或者字符长度
image 二进制存储的图像,图片,多媒体
decimal (5.2) 用于存储固定精度的小数,其中5表示总位数,2表示小数位。
date 存储日期:YYYY-MM-DD
datetime 存储日志 yyyy-mm-dd hh:mm:ss (年-月-日-时-分-秒)
timestamp 和datetime格式一致,可以自动更新位当前的时间戳

char和varchar的区别

char:无论是否定义了值,他都会占用固定长度的字节大小

varchar:在保存时,varchar14 实际长度是5。结果就是实际长度+隐藏符号=6个

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

sql语句的分类

DDL:数据定义的语言,用于创建数据的对象,创建库,表,索引。

  CREATE :创建

 DROP :删除

 ALTER:修改

show global variables like 'port';

show databases;
查看库
use mysql;
//使用mysql库

show tables;

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

show databases;
create databases zzr;

create table hj (id int(4) not null,name varchar(10) not null,score decimal(5,2),passwd char(48),primary key(id));

desc hj;
//查看表结构

null和空格的区别:

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

DML:数据操纵语言,对表中的数据进行管理

select:查看

update:更新

insert:添加

delect:删除 对表进行删除操作

insert into hj values(4,'ZZR',92,password('789'))

mysql> update hj set passwd=password('456') where id = 3;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> select * from hj;
+----+------+-------+-------------------------------------------+
| id | name | score | passwd                                    |
+----+------+-------+-------------------------------------------+
|  1 | A    |  NULL |                                           |
|  2 | 啊   | 90.00 | 123                                       |
|  3 | AAA  | 95.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
|  4 | ZZR  | 92.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
+----+------+-------+-------------------------------------------+
4 rows in set (0.01 sec)

mysql> delete from hj where id = 4;
mysql> select * from hj;

DQL语言:查询数据记录

select * from hj where id = 3;
+----+------+-------+-------------------------------------------+
| id | name | score | passwd                                    |
+----+------+-------+-------------------------------------------+
|  3 | AAA  | 95.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
+----+------+-------+-------------------------------------------+
1 row in set (0.00 sec)

//查看指定行

mysql> select * from hj limit 2,3;
+----+------+-------+-------------------------------------------+
| id | name | score | passwd                                    |
+----+------+-------+-------------------------------------------+
|  3 | AAA  | 95.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
+----+------+-------+-------------------------------------------+
1 row in set (0.00 sec)

mysql> select * from hj limit 1,3;
+----+------+-------+-------------------------------------------+
| id | name | score | passwd                                    |
+----+------+-------+-------------------------------------------+
|  2 | 啊   | 90.00 | 123                                       |
|  3 | AAA  | 95.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
+----+------+-------+-------------------------------------------+
2 rows in set (0.00 sec)

limit 2;
//表示前两行

查看指定列

mysql> select distinct name from hj;
+-----------+
| name      |
+-----------+
| A         |
| 啊        |
| AAA       |
| zhaozirui |
| 赵子瑞    |
+-----------+
5 rows in set (0.00 sec)

//查看指定列

修改表的名称

修改表的名称
mysql> show tables;
+---------------+
| Tables_in_zzr |
+---------------+
| hejing        |
+---------------+
1 row in set (0.00 sec)

mysql> alter table hejing rename hj;
//格式
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+---------------+
| Tables_in_zzr |
+---------------+
| hj            |
+---------------+
1 row in set (0.00 sec)

更新信息

mysql> update hj set birth=date('2002-5-31') where id = 4;

//根据唯一索引查看定位

修改列名

mysql> alter table hj change birth birthday datetime;

删除列

删除列
mysql> alter table hj drop birthday;

修改字段类型

mysql> alter table hj modify column passwd varchar(52);
Query OK, 5 rows affected (0.01 sec)

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

   GRSNT:赋予权限

   REMOVE:取消权限

   TCL:事物控制语句,管理数据库当中的事物

      commit:确认提交事物,一旦提交就无法修改

      ROLLBACK:事物提交之后无法回滚。

   savepoint保存点,可以回滚

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

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

相关文章

写保护设置——三、I2C EEPROM

三、I2C EEPROM I2C通讯的EEPROM只有硬保护,没有软保护。 以AT24C01A/02/04/16型EEPROM和AT24C02A/04A/08A/16A型EEPROM为例,管脚定义和写保护WP功能分别如下。 (1)AT24C01A/02/04/16型EEPROM 规格书: AT24C01A/02…

软件测试行情不好,我还是啃下了27K的offer

o “会代码吗?” o “会,Java、Python我都会一些!” o “有没有用代码开发过一些测试工具平台呢?” o “额。。。这个。。。没做过。。。” o “那你回去等消息吧” 软件测试行业发展到今天,测试人员会代码&#x…

Jtti:Apache服务的反向代理及负载均衡怎么配置

配置Apache服务的反向代理和负载均衡可以帮助您分散负载并提高应用程序的可用性和性能。下面是一些通用的步骤,以配置Apache反向代理和负载均衡。 1. 安装和配置Apache: 确保您已经安装了Apache HTTP服务器。通常,Apache的配置文件位于/etc…

城中村智能水电表改造,提升居民生活品质

随着我国城市化进程的加快,城中村成为了城市发展的焦点。然而,由于历史原因,城中村的水电设施普遍存在老化、破损等问题,给居民生活带来诸多不便。为了提升城中村居民的生活品质,智能水电表的推广和改造已成为当务之急…

css:button实现el-radio效果

先看最终效果&#xff1a; ​​​ 思路&#xff1a; 一、 首先准备好按钮内容&#xff1a;const a [one,two,three] 将按钮循环展示出来&#xff0c;并设置一些样式&#xff0c;将按钮背景透明&#xff1a; <button v-for"(item,index) in a" :key"in…

创造健康、造福一方,强强联合共筑新疆妇幼健康梦

改善优生优育全程服务&#xff0c;提供优质生育全程医疗保健服务&#xff0c;强化孕前优生健康检查、产前筛查以及不孕不育诊治服务等&#xff0c;是国家《“十四五”国民健康规划》的重要内容。为向全疆群众提供国内一流的妇幼保健诊疗服务&#xff0c;满足群众“生的出、生的…

【威联通】共享文件夹设置

1. 前期准备 下载 QNAPQsyncClient 然后安装此软件&#xff0c;安装的目标文件夹可以更换到其他盘&#xff0c;如下图所示 点击 确定 点击 完成 弹出框中选择 中国 然后点击 套用 点击 跳过 点击 完成 勾选方框&#xff0c;然后点击 确定 第一个框中输入需要同步的 NAS IP 地址…

MFA-Conformer

基于多尺度特征聚合Conformer说话人识别模型的创新与应用 论文&#xff1a;https://arxiv.org/abs/2203.15249 代码&#xff1a;GitHub - zyzisyz/mfa_conformer 收录于 INTERSPEECH 2022 1. 简介 本文由清华大学与腾讯科技&#xff08;北京&#xff09;有限公司、台湾大学…

Android intent的一些小使用

目录&#xff1a; 1. Test5.java2. activity_main5.xml3. Empty.java (这个是用来带参数打开Activity按钮用的)4. activity_empty.xml5. 总结 一些基本的问题就不进行说明了&#xff0c;直接上代码&#xff01;&#xff01;&#xff01; // 最后的隐形intent和带返回值没有解决…

2023最新短剧小程序搭建,短剧分销系统功能介绍

#短剧小程序# 基础功能最近新增功能 1.对接流量主变现 2.影视作品观看 3.支持创作者入驻 4.PC独立后台管理 5.壁纸&#xff0c;表情包下载 6.内容管理分类&#xff0c;专题分类 7.可单次付费或月会员 8.会员开通与支付功能 9.微信端使用 10.后台数据清晰明了 11.可定制搭建 新…

安装Redis使用make命令报异常

报错信息如下&#xff1a; 解决方案&#xff1a; 安装 gcc yum install gcc-c -y清空编译失败残留文件&#xff1a; make distclean使用 make 命令进行编译&#xff1a; make -j 2 PREFIX/usr/local/redis install

JAVA实现生活废品回收系统 开源

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案&#xff0c;旨在鼓…

缓解光纤激光切割机老化之如何保养光纤激光切割机的光学镜片

激光切割头具备极高的精密度和昂贵的价格&#xff0c;是光纤激光切割机最关键的运行部分之一。在日常的光纤激光切割机维修过程中频繁出现的关于切割头使用寿命的问题就是内部光学镜片的污染及损坏。 部分导致光纤激光切割机激光切割头光学镜片污染的原因主要包括&#xff1a;对…

安卓开发实例:随机数

点击按钮生成一个1-100之间的随机数 activity_random_number.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayoutxmlns:android"http://schemas.android.com/apk/res/android"xmlns:a…

Java实现电子元器件管理系统

目录 一、摘要1.1 项目简介1.2 项目录屏 二、研究内容三、界面展示3.1 登录&注册&主页3.2 元器件单位模块3.3 元器件仓库模块3.4 元器件供应商模块3.5 元器件品类模块3.6 元器件明细模块3.7 元器件类型模块3.8 元器件采购模块3.9 元器件领用模块3.10 系统基础模块 四、…

javascript错误处理和调试工具

目录 错误处理 try-catch语句 throw语句 Promise错误处理 调试工具 控制台打印 断点调试器 错误堆栈追踪 结论 1. 错误处理 2. 调试工具 3. 最佳实践和注意事项 结论 错误处理 try-catch语句 try-catch语句是处理JavaScript错误的基本方法。它允许我们尝试执行可…

EdgeCloudSim官方Sample运行——Windows+IntelliJ IDEA+Matlab

简介 EdgeCloudSim是一个用于模拟边缘云计算环境的开源仿真工具。它基于CloudSim&#xff0c;一个广泛使用的云计算仿真工具&#xff0c;但专门设计用于模拟边缘计算场景。 下载地址&#xff1a;https://github.com/CagataySonmez/EdgeCloudSim 使用步骤 1.IntelliJ IDEA中…

Vuex 动态模块状态管理器

模块化思想 我们之前的博文已经讲述了Vuex怎么使用命名空间实现模块化状态管理。详情可以看&#xff1a; Vuex命名空间及如何获取根模块、兄弟模块状态管理器_AI3D_WebEngineer的博客-CSDN博客https://blog.csdn.net/weixin_42274805/article/details/133269196?ops_request_…

宝塔面板8.0.3添加数据库mysql8.0版本会提示服务器状态异常问题的解决方案

宝塔面板8.0.3添加数据库提示服务器状态异常 宝塔面板8.0.3添加数据库mysql8.0版本会提示服务器状态异常问题的解决方案&#xff0c;首先是因为我们升级了面板&#xff0c;而我们的项目数据库是mysql8因此发生了莫名奇妙的数据不通问题&#xff0c;更奇怪是添加数据库会提示服…