MySQL数据库概念、管理以及SQL语句的基本命令操作

news2025/2/13 15:48:12

MySQL数据库概念、管理以及SQL语句的基本命令操作

  • 一、数据库概念
    • 1、数据库的组成:数据、表、数据库
    • 2、数据库类型
    • 3、数据库的管理系统(DBMS)
    • 4、数据库系统(DBS)
  • 二、数据库系统发展史
  • 三、当今主流数据库
  • 四、关系型数据库
  • 五、MySQL数据库基本命令操作
    • 1.查看数据库结构
    • 2.SQL语句概述
    • 3.SQL语句基本操作
      • (1)、DDL:用于创建数据库对象,如库、表、索引等
      • (2)、DML管理表中的数据记录
      • (3)、DQL 查询数据记录——select
      • (4)、修改表名和表结构——alter

一、数据库概念

1、数据库的组成:数据、表、数据库

数据(data)

  • 描述事物的符号记录
  • 包括数字,文字、图形、图像、声音、档案记录等
  • 以“记录”形式按统一格式进行存储(记录可以看成一条记录)

  • 将不同的记录组织在一起
  • 用来存储具体数据
  • 记录:行
  • 字段(属性):列
  • 以行+列的形式就组成了表(数据存储在表中)

数据库

  • 表的集合,是存储数据的仓库
  • 以一定的组织方式存储的相互有关的数据集合
  • 多张表存储在数据库中
  • “关系型数据库”表与表字段/属性的关联

2、数据库类型

(1)关系型数据库
  存储的往往是字符、字符串、数值、布尔值等
  代表有:Mysql (Oracle公司) 、SQL server (微软) 、access (微软公司office产品)"oracle、DB2 (IBM公司) 、 sybase (sybase)等等

(2)非关系型数据库(NoSQL (Not Only SQL))
  存储的往往是图片、视频、语音等
  代表有:MongoDB 、 Redis (内存数据库/缓存数据库) K-V键值对、与之类似的Mcmcache K-V键值对

  • redis 与 Mcmcache
    相同点:存储高热数据(在内存中高速运行)
    不同点 :redis可以做持久化保存,可以存储对象

3、数据库的管理系统(DBMS)

  • 是实现对数据库资源有效组织、管理和存取的系统软件
  • 功能:数据库的建立和维护功能、数据定义功能、数据操控功能、数据库的运行管理功能、通信功能

4、数据库系统(DBS)

  • 是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
  • 用户可以通过DBMS或应用程序操作数据库

二、数据库系统发展史

1、第一代数据库

  • 自20世纪60年代起,第一代数据库系统问世
  • 是层次模型与网状模型的数据库系统
  • 为统一管理和共享数据提供了有力的支撑

2、第二代数据库

  • 20世纪70年代初,第二代数据库——关系数据库开始出现
  • 20世纪80年代初,IBM公司的关系数据库系统DB2问世,开始逐步取代层次与网状模型的数据库,成为行业主流
  • 到目前为止,关系数据库系统仍占领数据库应用的主要地位

3、第三代数据库

  • 自20世纪80年代开始,适应不同领域的新型数据库系统不断涌现
    面向对象的数据库系统,实用性强、适应面广
  • 20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面
  • 一些新的元素被添加进主流数据库系统中,例如:Oracle支持的“关系-对象"数据库模型

4、当前主流使用

  • 当前主流数据库的使用方法为:SQL+NoSQL,能在高并发时,NoSQL能为SQL进行相应的减压

三、当今主流数据库

类型特点
SQL Server (微软公司产品)面向Windows操作系统
简单、易用
Oracle (甲骨文公司产品)面向所有主流平台
安全、完善、操作复杂
DB2 (IBM公司产品)面向所有主流平台
大型、安全、完善
MySQL (甲骨文公司收购)免费、开源、体积小

在这里插入图片描述

四、关系型数据库

  • 常见的关系型数据库典型代表:Mysql(5.7 / 8.0)、Mariadb、Oracle、SQL Server、PostgreSQL、DB2
  • 国产数据库代表:阿里云的RDB、华为的高斯、腾讯的TDBA、阿里的Oceanbase、人大金仓、达梦

1、介绍

  • 关系数据库系统是基于关系模型的数据库系统
  • 关系模型的数据结构使用简单易懂的二维数据表
  • 每一行称为一条记录,用来描述一个对象的信息
  • 每一行称为一个字段,用来描述对象的一个属性
  • 关系模型可用简单的"实体-关系-属性"来表示

在这里插入图片描述

2、实体

  • 也称为实例,对应现实世界中可区别与其他对象的“事件”或“事物”
  • 如银行客户、银行账户等

3、关系

  • 实体集之间的对应关系称为联系,也称为关系
  • 如银行客户和银行账户之间存在“储蓄”的关系

4、属性

  • 实体所具有的某一特性,一个实体可以有多个属性
  • 如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性

5.存储结构

  • 是二维表格,先建立库,在建立,在建立列()和行*()

五、MySQL数据库基本命令操作

类型说明
int整型(定义整数类型数据)
float单精度浮点,4字节32位,准确到小数点后六位
double双精度浮点,8字节64位
char固定长度的字符类型,定义字符类数据
varchar可变长度的字符类型
text文本
image图片
decimal (5,2)5个有效长度数字,小数点后面有2位,指定长度数组

1.查看数据库结构

(1)、进入数据库

mysql -u root -p
-u 连接数据库的用户名
-p 后面跟的是连接数据库的密码(不能有空格)

在这里插入图片描述

(2)、查看数据库的信息

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

在这里插入图片描述

(3)、查看数据库中包含的表

USE 数据库名;
SHOW TABLES;

在这里插入图片描述

(4)、查看表的结构(字段)

USE 数据库名;
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;

这里执行就像我们在Linux中使用绝对路径和相对路径一样,当你在所在表的库中时,可省略前面的数据库名(相对路径)。
当你需要对其他库中的表进行操作时,就需要加上库名(绝对路径)进行操作。

在这里插入图片描述

2.SQL语句概述

(1)、SQL语言

  • Structured Query Language 的缩写,即结构化查询语言
  • 关系型数据库的标准语言
  • 用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能

(2)、SQL分类

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

3.SQL语句基本操作

(1)、DDL:用于创建数据库对象,如库、表、索引等

  • 创建新的数据库
CREATE DATABASE 数据库名;

在这里插入图片描述

  • 创建新的表
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。

create table class1(id int, name char(4), age int, sex char(4));
desc class1;
show tables;

在这里插入图片描述

field字段
type类型
null允许为空
not null不允许为空
default默认为空
primary key主键(一般选择没有重复且不为空的字段)
  • 删除指定的数据表
use 数据库名;
drop table 表名;
或
drop table [数据库名.]表名;

在这里插入图片描述

  • 删除指定的数据库
DROP DATABASE 数据库名;

例:show databases;
drop table internet.class2
show tables;

在这里插入图片描述

(2)、DML管理表中的数据记录

- 向数据表中插入新的数据记录:insert
insert into 表名(字段1,字段2[,...]) values(字段1的值,字段2的值,...);;

insert into class1(id,name,age,sex) values(1, 'xc', 24, '男');
desc class1
select * from class1

在这里插入图片描述

- 查询数据记录
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];

select * from class1
select name,sex from class1 where id=2;
select name,age from class1 where id=1;

在这里插入图片描述

- 修改、更新数据表中的数据记录:update
update 表名 set 字段名1=字段值1[,字段名2=字段值2] [where 条件表达式];

insert into class1 values(4,'gw',26,'男');
insert into class1 values(6,'yxy',23,'女');
insert into class1 values(6,'yxy',23,'女');
select * from class1;

select * from class2
update class2 set address='江苏南京鼓楼' where id =1;
select * from class2;

在这里插入图片描述
在这里插入图片描述

- 在数据表中删除指定的数据记录:delete
delete from 表名 [where 条件表达式];

delete class1 id=3 where name='ywy';
select * from class1;

在这里插入图片描述

(3)、DQL 查询数据记录——select

select 字段名1,字段名2[,...] from 表名 [where 条件表达式];

小技巧:
select * from 表名;           #显示全部
select 字段1,字段2 from 表名;  #显示字段1和字段2  
select 字段1 from 表名\G;      #以列表形式竖向显示
select * from 表名 info limit 2;   #只显示头2行
select * from 表名 info limit 2,3; #显示第2行后的前3行

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(4)、修改表名和表结构——alter

- 修改表名
ALTER TABLE 旧表名 RENAME 新表名;

例:alter table class1 rename class2;
show tables;
select * from class1;
select * from class2;

在这里插入图片描述

- 扩展表结构(增加字段)
alter table class2 add address varchar(30) default '地址不详';
#default ‘地址不详’:表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用

在这里插入图片描述

- 修改字段(列)名,添加唯一键
alter table 表名 change 旧列名 新列名 数据类型 [unique key];

#change 可修改字段名、数据类型、约束等所有项

在这里插入图片描述

唯一键:唯一,但可以为空(空值只能出现一次)
#每张表往往有多个字段具有唯一性,但是只能指定一个主键,所以唯一键就是用来解决表中多个字段需要具有唯一性的问题

主键包含唯一键的部分属性
唯一键不能完全作为主键

select * from class2;

insert into class2(id,personal_name,age,sex) values(7,'nwt',22,'女');  		#因为personal_name中已经存在nwt,所以不能在创建相同的数据
insert into class2(id,personal_name,age,sex) values(7,'aklnjl',22,'女');	#因为设置的字数不超过5个,很明显违反了规则

insert into class2(id,personal_name,age,sex) values(7,'opp',22,'女');
select * from class2;

在这里插入图片描述

4、删除字段、主键

alter table 表名 drop 字段名;

 alter table class2 drop age;
 select * from class2;
alter table class2 drop sex;
select * from class2;

在这里插入图片描述

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

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

相关文章

HTML+CSS实训——Day15——部署项目到阿里云服务器

前言 因为阿里云有免费的3个月试用,我们可以把项目部署到上面。 选择这个服务 我们用CentOS,更简单,更轻量化。 打开他的VNC控制台 安装宝塔控制面板,输入 yum install -y wget && wget -O install.sh https://downlo…

提高你的小程序开发技能:五大重要步骤

对于任何开发人员来说,想要创建一个小程序并不是一件容易的事情。你需要为每个功能和应用程序编写代码,并且你需要不断地进行测试以确保它不会出错。 那么,我们该如何提高小程序的开发技能呢?通过下面这五个重要步骤,…

Win10麦克风没有声音怎么办?Win10麦克风没有声音恢复教程

Win10麦克风没有声音怎么办?Win10电脑中用户发现麦克风没有声音了,想知道怎么操作才能让声音恢复正常,这时候用户需要打开Win10电脑的设备管理器,点击更新相对应的驱动程序,这样就能轻松解决Win10麦克风没有声音的问题…

Python 课程设计2:学生信息管理系统

开发环境要求 本系统的软件开发及运行环境具体如下。 操作系统:Windows 10。Python版本:Python 3.7.0。开发工具:PyCharm VSCodePython内置模块:os、re。 功能: 1 录入学生信息功能 …

大模型微调方法调研

文章目录 Freeze方法PT方法Lora方法AdaloraPrompt TuningAdapter TuningPrefix tuning遗留问题 Freeze方法 对原始模型部分参数进行冻结操作,仅训练部分参数 PT方法 P-Tuning,仅对大模型的Embedding加入新的参数。 P-Tuning 提出将 Prompt 转换为可以…

Cgroup资源管理

docker资源限制 容器怎么实现资源的限制? 通过Cgroup资源限制 docker 通过Cgroup来控制容器使用的资源配额,包括CPU,内存,磁盘三大方面。 Cgroup是linux内核提供的一种可以限制,记录,隔离进程组所使用的…

IDEA默认代码样式的坑,逗号前面默认加上了空格

IDEA默认代码样式的坑,逗号前面默认加上了空格 个人习惯编写完代码,会使用CTRLALTL进行代码格式化,同时设置了提交的时候进行代码重排和格式化。突然有一天,格式化代码之后发现跟仓库的差异文件几百个,吓死。。。 当然…

代码开发中VO,BO,PO,DO,DTO是什么

代码开发中VO,BO,PO,DO,DTO是什么 MVC的简单定义: M层负责与数据库打交道; C层负责业务逻辑的编写; V层负责给用户展示(针对于前后端不分离的项目,不分离项目那种编写…

一、微机保护装置的典型结构

微机型保护装置实质上是一种依靠单片微机智能地实现保护功能的工业控制装置。一般典型的微机保护结构是由五个部分构成的,即信号输入电路、单片微机系统、人机接口部分、输出通道回路及电源部分,如图1-l所示。 (一)信号…

多线程之基础

写在前面 本文看下多线程基础相关内容。 1:线程基础分析 1.1:摩尔定律失效 戈登.摩尔,英特尔公司的创始人之一,其发现了一个计算机的发展规律,即,处理器的性能每24个月就会翻一倍,这就是摩尔…

Vintage的变体与解读应用

Vintage在风险管理中有很多变体,通常分为以下四类: 1.根据选取切片数据时间不一样,可划分为Month end(月末)与Cycle end(期末)两种。 说明: **Month end:**选取切片数…

基于自适应高斯混合的稀疏注释语义分割

文章目录 Sparsely Annotated Semantic Segmentation with Adaptive Gaussian Mixtures摘要本文方法GMM FormulationTraining with AGMM 实验结果 Sparsely Annotated Semantic Segmentation with Adaptive Gaussian Mixtures 摘要 稀疏注释语义分割(SASS&#xf…

给图片添加水印的最简单方法

给图片添加水印的最简单方法在数字化时代,图片广泛应用于社交媒体、网站、电商平台等各种场景中。然而,由于互联网分享的便捷性,图片的盗用问题也越来越严重。为了保护图片版权,给图片添加水印已经成为一个非常必要和重要的步骤。…

参与赢大奖!阿里云机器学习平台PAI助力开发者激发AIGC潜能

近年来,随着海量多模态数据在互联网的爆炸性增长和训练深度学习大模型的算力大幅提升,助力开发者一站式快速搭建文生图、对话等热门场景应用,阿里云机器学习平台PAI特推出AIGC加油包,为广大开发者加油助力激发AIGC潜能&#xff0c…

OJ管理员如何进行添加题目

OJ系统简介 Online Judge系统(简称OJ)是一个在线的判题系统。用户可以在线提交程序多种程序(如C、C) 源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。 一个用户提…

手把手教你进行Mysql条件查询操作

关注“Java架构栈”微信公众号,回复暗号【Java面试题】即可获取大厂面试题 从今天开始,健哥会带各位小伙伴开始学习数据库技术,这是Java开发中必不可少的一部分内容,也是非常重要的技术。本系列教程由浅入深,全面讲解数…

CentOS 停服倒计时,如何打造安全好用的 Linux 系统?

导读近年来,操作系统在国内的讨论极其热烈,也备受各方关注,操作系统在开发者圈中的重要性越来越高。毋庸置疑,对于众多的开发者来说,选择合适的操作系统对于开发效率、代码质量和个人发展都有着非常重要的影响。CSDN 作…

【Protobuf速成指南】oneof类型的使用

文章目录 2.3 oneof 类型一、基本认识二、 3.2 oneof相关函数三、Contact2.3 改写 2.3 oneof 类型 本系列文章将通过对通讯录项目的不断完善,带大家由浅入深的学习Protobuf的使用。这是Contacts的2.3版本,在这篇文章中将带大家学习Protobuf的 oneof 语关…

医院监控4大难点如何破解?这个方法太顶了

在医院环境中,许多重要的设备对于病人的诊断、治疗和监护至关重要。为了确保这些设备的正常运行和安全性,动环监控系统可以发挥关键作用。 客户案例 四川某大型综合医院引入了动环监控系统来监控其重要设备,如手术室设备、监护设备和医疗影像…

【Android自动化测试】Ui Automator技术(以对QQ软件自动发说说为例)

文章目录 一、引言二、了解(Android官方文档)1、UiDevice 类2、UI Automator API3、UI Automator 查看器 三、使用1、依赖2、代码 一、引言 描述:UI Automator 是一个界面测试框架,适用于整个系统上以及多个已安装应用间的跨应用…