mysql数据库简介

news/2024/7/7 20:46:05/文章来源:https://www.cnblogs.com/hxqwe/p/18271801

一、数据库介绍

1.数据库基本概念

数据(Data)

描述事物的符号记录

包括数字,文字、图形、图像、声音、档案记录等

以“记录”形式按统一的格式进行存储

将不同的记录组织在一起

用来存储具体数据

数据库

表的集合,是存储数据的仓库

以一定的组织方式存储的相互有关的数据集合

数据库管理系统(DBMS)

数据库管理系统是实现对数据库资源有效组织、 管理和存取的系统软件。

功能:

数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能。

数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式 及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语 义的错误数据被输入或输出。

数据操纵功能:包括数据查询统计和数据更新两个方面。

数据库的运行管理功能:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。

通信功能:DBMS 与其他软件系统之间的通信,如 Access 能与其他 Office 组件进行 数据交换。

2.数据库的分类

数据库分两大类,关系型数据库非关系型数据库

关系数据库 SQL

操作命令:SQL语句

存储结构:二维表格

存储的数据:结构化数据

 

库 -> 表 -> 二维表格形式的结构化数据   

 

每一行称为一条记录,用来描述一个对象的信息

每一列称为一个字段,用来描述对象的一个属性

非关系数据库 NoSQL

存储结构:键值对 文档 索引 时间序列
缓存型 Redis Memcached
文档型 MongoDB
索引型 ElasticSearch
时序型 Prometheus InfluxDB

3.主键

主键(Primary Key)是一个数据库表中的一列或一组列,用于确保数据的唯一性和数据行的唯一标识。
在表中,主键的值是唯一的。

主键具有以下特点:
1)唯一性:主键列中的值必须是唯一的,每一行的主键值都不相同。
2)非空性:主键列的值不能为空,也就是不允许为空值或NULL值。
3)唯一标识性:主键用于识别和区分表中的不同行数据,通过主键可以快速定位和访问表中的数据。

主键还可以用于建立表与表之间的关系,实现数据的关联和连接操作。

二、MySQL数据库简介

1.常用的数据类型

int :整型 无符号[0,2^32 - 1],有符号[-2^31,2^31 - 1]
float :单精度浮点 4字节32位
double :双精度浮点 8字节64位
char :固定长度的字符类型
varchar :可变长度的字符类型
text :文本
image :图片
decimal(5,2) :5个有效长度数字,小数点后面有2位

2.SQL语句

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

SQL语言分类:
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

3.MySQL的约束特性(六大约束)

primary key(主键约束) 字段的值不能重复,且不能为null,一个表只能有一个唯一键

uniq key(唯一性约束) 字段的值不能重复,可以为null,一个表可以有多个唯一键

not null (非空约束) 字段的值不能为null

default (默认值约束) 字段的值如果没有设置,则使用默认值自动填充

auto_increment (自增约束) 字段的值如果没有设置,默认会从1开始,每次自动递增1,要求自增字段必须设置主键

int(N) zerofill (零填充)

三、MySQL数据库基本操作

1.登录MySQL数据库

表名和库名区分大小写

命令不区分大小写

mysqladmin -u root -p password "123" #设置密码mysql -u root -p #登录

mycli -u root -p 123 #登录

2.查看数据库结构

查看当前服务器中的数据库

 

show databases;                        #大小写不区分,分号“;”表示结束

 

 查看数据库中包含的表

方式一

USE 数据库名;
show tables;

 方式二

show tables from 数据库名;

查看表的结构字段

方式一 切换数据库

use 数据库名;
describe 表名; 
或者
desc 表名;

 方式二

3.创建及删除数据库和数据表

创建新的数据库

create database <数据库名>;
#举个例子
create database hx;

创建新的

create table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
#举个例子
create database hx;
use hx;create table tb1 ( id int not null,name char(10) not null,score decimal (5,2),passwd char(48) default ' ' , primary key (id));desc tb1;

删除指定的数据表

drop table [数据库名.]表名;                #如不用USE进入库中,则需加上数据库名

4.管理数据表中的数据记录

数据表中插入新的数据记录

insert into表名(字段1,字段2[,...]) values(字段1的值,字段2的值,...);
#举个例子
insert into tb1(id,name,score,passwd)  values(1,'zhangsan',70.5,password('123123'));
insert into tb1(id,name,score,passwd) values(2,'lisi',80,123456);
insert into tb1(id,name,score,passwd) values(3,'lisi',90,456789);
#使用 password('123456'),查询数据记录时,密码字串以加密形式显示
#若不使用password( ),查询时以明文显示

查询数据记录

select 字段名1,字段名2[,...] from 表名 [where 条件表达式];
#举个例子
select * from tb1; #查询所有数据记录
select id,name,score from tb1 where id=2; #查询特定的数据记录

#扩展用法1
select name from tb1\G  #以列表方式竖向显示

#扩展用法2
select * from by1 limit 2;                #只显示头2行
select * from by1 limit 2,3;            #显示第2行后的前3行

修改、更新数据表中的数据记录

update 表名 set 字段名1=字段值1[,字段名2=字段值2] [where 条件表达式];
#举个例子
update by1 set name='abc' where id=3;

在数据表中删除指定的数据记录

delete from 表名 [where 条件表达式];
#举个例子
delete from tb1 where id=3;

5.修改表名和表结构

修改表名

alter table 旧表名 rename 新表名;
#举个例子
alter table tb1 rename tab1

扩展表结构(增加字段

alter table 表名 add 新字段 数据类型 [字段属性];
#举个例子
alter table tb1 add address varchar(50) default 'xxx';
#default 'xxx':表示此字段设置默认值 xxx;可与 NOT NULL 配合使用

修改字段(列)名,添加唯一键

alter table 表名 change 旧字段 新字段 数据类型 [字段属性];
#举个例子
alter table tb1 change name user_name varchar(10) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。

删除字段

alter table 表名 drop 字段名;
#举个例子 
alter table byy1 drop passwd;

6.扩展

use tb1;
create table if not exists info (
id int(4) zerofill primary key auto_increment,    #指定主键的第二种方式
name varchar(10) not null default '匿名', #不允许为空
cardid int(18) not null unique key,  #唯一键
hobby varchar(50));#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001
#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键#not null:表示此字段不允许为NULL
create table if not exists info (id int(4) zerofill primary key auto_increment,name varchar(10) not null default 'xx',cardid int(18) not null unique key,hobby varchar(50));

 

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

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

相关文章

mac 电脑查看已安装的谷歌插件

1、打开谷歌浏览器 地址栏上面输入  chrome://version/ 2、找到 个人资料路径: /Users/admin/Library/Application Support/Google/Chrome/Default3、打开个新窗口 地址了上输入:个人资料路径 ,并找到 Extensions/ 文件夹 4、里面都是已安装的谷歌插件, 想要哪个插件…

Nordic nRF Connect SDK(NCS) VS Code 安装记录

1.Nordic SDK Nordic有2套并存的SDK:老的nRF5 SDK和新的nRF Connect SDK(NCS),两套SDK相互独立,大家选择其中一套进行开发即可。 一般而言,如果你选择的芯片是nRF51或者nRF52系列,那么推荐使用nRF5 SDK。 如果你选择的是Nordic最新产品系列,比如nRF53或者nRF9160,那么…

浅谈 K8s Service 网络机制

浅谈 K8s Service 网络机制 云原生运维圈 2024-07-01 12:03 上海 1人听过以下文章来源于腾讯云原生 ,作者王成腾讯云原生. 云原生技术交流阵地,汇聚云原生最新技术资讯、文章、活动,以及云原生产品及用户最佳实践内容。王成,腾讯云研发工程师,Kubernetes member,从事数据…

全新升级!中央集中式架构功能测试为新车型保驾护航

目前,文中所述功能测试新方案均已应用于国内多款新架构车型的研发,得到了广泛认可。 “软件定义汽车”新时代下,整车电气电气架构向中央-区域集中式发展已成为行业共识,车型架构的变革带来更复杂的整车功能定义、更多的新技术的应用(如SOA服务化、智能配电等)和更…

江门MES制造执行系统:助力工厂实现智能化管理

江门MES制造执行系统(MES)在工厂实现智能化管理方面发挥着重要作用,以下是它的一些助力方面: 实时监控与控制:江门MES系统可以实时监控生产过程中的各个环节,包括设备状态、生产进度、质量指标等,帮助工厂管理人员及时了解生产情况并做出相应的调整和控制。生产计划与排程…

搭建微信小程序

在开发小程序之前,您需要先注册微信小程序。进入小程序页面,单击前往注册,根据指引填写信息和提交相应的资料,点击注册,完成账号申请。使用申请的微信公众平台账号登录小程序后台,单击开发管理> 开发设置,可以看到小程序的AppID,请记录AppID,后续操作中需要使用。 …

《从零开始学Python》(第二版) PDF读书分享

Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。 Pyt…

记一次 .NET某网络边缘计算系统 卡死分析

一:背景 1. 讲故事 早就听说过有什么 网络边缘计算,这次还真给遇到了,有点意思,问了下 chatgpt 这是干嘛的 ?网络边缘计算是一种计算模型,它将计算能力和数据存储位置从传统的集中式数据中心向网络边缘的用户设备、传感器和其他物联网设备移动。这种模型的目的是在接近数…

Cannot load from short array because sun.awt.FontConfiguration.head is null

新服务器,部署项目,使用easyExcel功能导出文件时,报错提示:Cannot load from short array because "sun.awt.FontConfiguration.head" is null,可以看到是字体文件配置引发的空指针异常; 解决方法:登录服务器,执行命令 yum install fontconfigfc-cache --for…

heap

堆块: chunk 堆是以一个个的堆块构成的,这些堆块就叫chunk chunk的大小是8字节对齐,但是一个堆块的具体大小是16字节对齐的,比如一个堆块只能是 0x40,0x50,0x60 不会是0x48这样的数据 其中一个堆块的header头部字节占16字节大小,也就是0x10字节 64位程序下的最小长度是3…

固件的提取

固件提取的三类方法:直接从官网上找到目标型号的设备固件下载 使用Telnet或者ssh从目标设备中获取固件 从开发板中的flash芯片中或者通过uart和jtag调试接口将固件提取下来JTAG(Joint Test Action Group),是一种用于测试和调试电子设备的技术标准。它使用4线或5线接口,其中…

转:在Linux上运行WinForm

C#winform软件实现一次编译,跨平台windows和linux、mac兼容运行,兼容Visual Studio原生界面Form表单开发 - 亲善美 - 博客园 (cnblogs.com)一、背景: 微软的.net core开发工具,目前来看,winform界面软件还没有打算要支持linux系统下运行的意思,要想让c#桌面软件在linux系…

固件的烧录以及部分PCB基础

固件 固件的基础定义: 固件(firmware)一般存储于设备中的电可擦除只读存储器(允许用户通过特定的电子方式复写存储内容,在【工作情况下是只读的,并且关闭电源仍存储数据)EEPROM(Electrically Erasable Programmable ROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进…

Golang:go-querystring将struct编码为URL查询参数的库

Golang:go-querystring将struct编码为URL查询参数的库 原创 吃个大西瓜 Coding Big Tree 2024-05-09 08:30 北京go-querystring is a Go library for encoding structs into URL query parameters.译文:go-querystring 将struct编码为URL查询参数的Golang库文档https://pkg.g…

C#之缓存

原文链接:https://zhuanlan.zhihu.com/p/657458522 缓存指在中间层中存储数据的行为,该行为可使后续数据检索更快。 从概念上讲,缓存是一种性能优化策略和设计考虑因素。 缓存可以显著提高应用性能,方法是提高不常更改(或检索成本高)的数据的就绪性 既然缓存是是一种性能…

有关paddleocr在pyinstall中打包问题的解决方案

借鉴网址python解决paddleocr打包问题_pyinstaller怎么解决paddleocr中的动态导入-CSDN博客 在打包时我使用的spec文件如下:(需要将pathe和binaries换为自己的paddleocr路径) block_cipher = Nonea = Analysis([main.py], pathex=[E:\\PyEnviroment\\Lib\\site-packages…

初始docker

前置知识 通过面向对象的知识来了解docker中的镜像和容器就很好理解了,docker是C/S架构镜像:是一个只读的模板,可以用来创建容器。类容器:是docker的运行实例,提供了一个独立的可移植的环境,可以在这个环境中运行应用程序。实例,1个或多个docker仓库:用来存储docker镜像…

【日记】度过了一个堕落的周末……(184 字)

正文昨天睡了一天觉,今天看了一天《三体》电视剧。真是堕落到没边了呢(笑。本来想写代码完成年度计划,或者多写几篇文章,但实在不想写,也不想动笔。感觉这个周末什么都没做呢,休息倒是休息好了。今天 30 号,也不知道灵平安到学校没有。本有一些想写的东西,但懒得动笔了…

BigCodeBench: 继 HumanEval 之后的新一代代码生成测试基准

HumanEval 是一个用于评估大型语言模型 (LLM) 在代码生成任务中的参考基准,因为它使得对紧凑的函数级代码片段的评估变得容易。然而,关于其在评估 LLM 编程能力方面的有效性越来越多的担忧,主要问题是HumanEval 中的任务太简单,可能不能代表真实世界的编程任务。相比于 Hum…

window 下 pyenv 安装与使用

安装 GitHub上下载这个文件 https://github.com/pyenv-win/pyenv-win 点击这个 下载到本地解压文件并且重命名为> pyenv 并放置到合理位置添加环境变量 ...\pyenv-win\bin ...\pyenv-win\shims添加完成之后执行如下命令验证 pyenv --versionpyenv的基本命令 查看支持的pytho…