mysql是建立在什么模型基础上的数据库,Mysql数据库基础了解及基本操作

news/2024/7/4 0:45:41

1、数据库:database,存数据的仓库;高效的存储和处理数据的介质(介质主要有磁盘和内存)。

2、数据库分类:

<1>基于介质的不同进行分类:(1)关系型数据库(SQL): 大型:Oracle,DB2; 中型:SQL-SERVER,Mysql;小型:access等。

(2)非关系型数据库(NoSQL:Not Only SQL):memcached,mongodb,redis

<2>两者区别:(1)关系型:安全(保存磁盘基本不可能丢失),易理解,但较浪费空间(二维空间)

(2)非关系型:效率高,但不安全(断电丢失)

3、关系型数据库:是一种建立在关系模型(数学模型)上的数据库

4、关系模型:包括三个方面:(1)数据结构:数据存储的问题,二维表(有行与列)

(2)操作指令集合:所有SQL语句

(3)完整性约束:表内数据约束(字段与字段),表与表之间的约束(外键)

5、SQL操作主要分为三种:DDL,DML,DCL三种类型:

(1)DDL:Data Definition Language,数据定义语言,用来维护存储数据的结构(数据库,表),代表指令:create,drop,alter等。

(2)DML:Data Manipulation Language,数据操作语言,用来对数据进行操作(数据表中的内容),代表指令:insert,delete,update等:其中DML内部又单独进行了一个分类:DQL(Data Query Language:数据查询语言,如select)。

(3)DCL:Data Control Language,数据控制语言,主要是负责权限管理(用户),代表指令:grant,revoke等。

注:SQL是关系型数据库的操作指令,SQL是一种约束,但不强制(类似W3C):不同的数据库产品(如Oracle,mysql)可能内部会有一些细微的区别。

好了,说完了上面SQL后,再把目光真正转向MySQL数据库上来

1、首先,什么是MySQL数据库呢?MySQL数据库是一种c/s结构的软件(c/s结构即为客户端/服务端结构):若想访问服务器必须通过客户端来访问,其中服务器要一直运行,客户端需要使用时运行。

2、交互方式:

(1)客户单连接认证:连接服务器,认证身份:Mysql.exe-hPup。

mysql.exe -h(主机地址) -p(端口) -u(用户名) -p(用户密码)

253d1a4c93f61ad00d976787148aaacc.png

(2)客户端发送SQL指令

示例:show databases(查看所有数据库)

(3)服务器接受指令,进行处理SQL指令,再返回操作结果

(4)客户端接受结果显示出来

237da456d2e1367453cb9177264e4b31.png

(5)断开连接(为了释放资源,服务器并发限制)(简单来说,不能占着空间,其他用户也需要使用)

断开连接的三种操作:exit,quit,\q

3、基本操作:CRUD(增查改删)

4、将SQL的基本操作根据操作对象进行分类,可分为以下三类:

(1)库操作:对数据库的增删改查。

基本语法:

<1>Create database 数据库名字 [库选项];库选项:用来约束数据库,分为两个选项:

字符集设定:charset/character set 具体字符集(数据存储的编码格式) 常用字符集:GBK,UTF8。

校对集设定:collate 具体校对集(数据比较的规则)

e1002e521a07a7f4bb8fe3b39523098e.png

注:其中,数据库名字不能使用关键字(已经被使用的字符)或者保留字(将来可能会用到的)

a0731993b9f434c069af4e46d7848bd0.png

如果非要使用关键字和保留字,那么必须使用反引号(esc键下面的键再英文状态下的输出:`)

a5a359216d6c3f5ad664a809afe001ed.png

注:中文数据库是可以的,但是有前提条件:保证数据库能够识别(建议不用)

当创建数据库的SQL语句执行后,发生了什么?

1、在数据库系统中,增加了对应的数据库信息

2、会在保存数据的文件夹下:Data目录,创建一个对应的数据库名字的文件夹

(下图即为创建中文数据库的弊端,名字不一样,而且创建多个中文数据库时很难区分)

3ea264b63d226fb645d38f98eb094ba5.png

3、每个数据库下都有一个opt文件:保存了库选项

e03929e5ab156e2bb21c29510b57385a.png

<2>查看数据库:

Show databases;(查看所有数据库)

c353241c79697f3c86a043202a8e0d63.png

Show database like 'pattern';----pattern是匹配模式(查看指定部分的数据库:模糊查询)

%:表示匹配多个字符。

_:表示匹配单个字符。

72237497c581ead38ee08d46e79afa1e.png

——查看以information_开始的数据库,需要被转义

show databases like 'information_%';          ---相当于information%

show databases like 'information\_%';

Show create database 数据库名字;(查看数据库的创建句子)

1326cbad6857d69a2c6c05a725f81e54.png

<3>更新数据库(数据库名字不可修改;数据库的修改仅限库选项:字符集和校对集(校对集依赖字符集))

Alter database 数据库名字 [库选项];

Charset/character set [=] 字符集

Collate 校对集

a5761a3f228f3452b5603d15dcaaee55.png

<4>删除数据库(所有操作中最简单的)

drop database 数据库名字;

bbfdfa630932981b8620606e1cb07191.png

当删除数据库语句执行后,发生了什么?

1、在数据库内部看不到对应的数据库

41208672bde0838299ee4b4338ca6107.png

2、在对应的数据库存储的文件夹内:数据库名字对应的文件夹也被删除(级联删除:里面的数据表全部删除)

c6e8722eac9aa2b7f429f5b55a830989.png

注:删除数据库需谨慎!(应进行备份后进行删除操作)

(2)表操作(包含字段操作,因为表与字段关联是离不开的)

<1>新增数据表

Create table [if no exists] 表名(

字段名字 数据类型,

字段名字 数据类型     -- 最后一行不需要逗号

)[表选项];

if no exists:如果表名不存在,就创建对应名字的表,否则不执行创建代码(称为检查功能)

表选项:控制表的表现

字符集:charset/character set 具体字符集; --保证表中数据存储的字符集

校对集:collate 具体校对集;

存储引擎:engine 具体的存储引擎(innodb和myisam)

ae207e155eb99ebe402850c11993bac5.png

(注:任何一个表的设计都需要指定数据库)

方案一:显示指定表所属的数据库

Create table 数据库名.表名();-- 将当前数据表创建到指定数据库下

de80c5d0d21a6ccc0f222439a32ec23f.png

方案二:隐式的指定表所属数据库:先进入某个数据库环境,然后创建的表自动归属到这个进入的数据库。

use 数据库名;

26535db66be0e7143178fb56cd8f78af.png

当创建数据表的SQL指令执行后,到底发生了什么?

1、指定数据库下已经存在对应的表

2、在数据库对应的文件夹下,会产生对应表的结构文件(跟存储引擎有关系)

9320f7406d2c2a292fb0d288e94aa895.png

<2>查看数据表

Show tables;(查看所有数据表);

d0dfc3b198e0e2b13c47ef54ba337cfd.png

Show tables like 'pattern';(查看部分表:模糊匹配)

3811e348980b666a8937542ba796547e.png

Show create table 表名;(查看表的创建语句)

9dc602558666e6a78f29d50439816a1a.png

Desc/describe/show columns from 表名;(查看表结构:查看表中的字段信息)

ce34e3bcbfb00a4f38a587a3cc20722c.png

<3>更新(修改)数据表(表可以修改的有:表名和表选项)

rename table 原表名 to 新表名字

bc24063284c172c268a35fbfb53f846f.png

修改表选项:字符集,校对集和存储引擎

Alter table 表名 表选项 [=] 值;

79f369a0fe4d951b46a1c04bfdbe4657.png

修改字段:新增,修改,重名,删除

1、新增字段

Alter table 表名 add [column] 字段名 数据类型 [列属性] [位置];

位置:字段名可以存放在表中的任意位置

First:第一个位置

After:在某个字段之后;用法:after 字段名;默认的是最后一个字段之后

f60e2101f9c70f99668ed88b05b756dd.png

2、修改字段:修改通常是修改属性或者数据类型

Alter table 表名 modify 字段名 数据类型 [属性] [位置];

1a5df6598a6859a7d2f88d51781f7979.png

3、重命名字段

Alter table 表名 change 旧字段 新字段 数据类型 [属性] [位置];

50a414114ba8a3e1ac01243497dfe60f.png

4、删除字段

Alter table 表名 drop 字段名;

3bafa3fae096da44536ecf47ae29ea7d.png

(注:删除方面的操作都要注意备份,删除的数据表内的数据基本无法恢复)

<4>删除数据表

Drop table 表名1,表名2...;   --- 可以一次性删除多张表

c6ba8d810110db0df72e00a73b11188f.png

当删除数据表的指令执行之后,发生了什么?

1、在表空间中,没有了指定的表(表内数据也不存在了)

2、在数据库对应的文件夹下,表对应的文件(与存储引擎有关)也会被删除

30d15274371dfa82ba766caa1485faf7.png

(3)数据操作

<1>方案一:给全表字段插入数据,不需要指定字段列表;要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致;凡是非数值数据,都需要引号(建议是单引号)包裹。

Insert into 表名 values(值列表)[,(值列表)];   -- 可以一次性插入多条记录

485c9345843357a831375f6660a8b35e.png

方案二:给部分字段插入数据,需要选定字段列表;字段列表出现的顺序与字段的顺序无关,但是值列表的顺序必须与选定的字段顺序一致。

Insert into 表名(字段列表) values (值列表)[,(值列表)];

23c5508522e7352024a07bd7467009ef.png


http://www.niftyadmin.cn/n/2851432.html

相关文章

python数据拟合怎么做的_将数据拟合到分布?

这是个复杂的问题&#xff0c;没有完美的答案&#xff0c;对于给定的数据&#xff0c;有两种设置概率分布函数参数的方法&#xff1a;在我的经验中&#xff0c;最近几年最大似然是首选的&#xff0c;尽管这可能不是每个领域的情况。这是如何估算R中参数的具体示例。考虑从高斯分…

redhat 8 更换yum源 使用centos国内软件源

redhat和centos什么关系&#xff0c;这里就不解释了&#xff0c;直接说如何让redhat也能使用yum或者dnf来安装软件。 #阿里云的源sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.reposudo dnf update#清华大学的源 文件内容如下#…

tar -zcvf命令_Java开发人员必须掌握的Linux命令(一)

做一个积极的人编码、改bug、提升自己我有一个乐园&#xff0c;面向编程&#xff0c;春暖花开&#xff01;子曰&#xff1a;“工欲善其事&#xff0c;必先利其器。“1、登录服务器SSH命令简单说&#xff0c;SSH是一种网络协议&#xff0c;用于计算机之间的加密登录。如果一个用…

写一个HTML页面,实现以下功能,左键点击页面时显示“你好”,右键点击时显示“禁止右键”。

<script language"javascript">function click() {if (event.button2) { alert(禁止右键&#xff01;) } if (event.button1) { alert(你好) }}document.οnmοusedοwnclick</script>

用户关系表 存储_列式存储-Apache HBase

简介HBase是一个基于HDFS的、分布式的、面向列(列族)的非关系型数据库&#xff08;NOSQL&#xff09;。HBase的特点1.海量数据存储&#xff0c;HBase表中的数据能够容纳上百亿行*上百万列。2.面向列的存储&#xff0c;数据在表中是按照列进行存储的&#xff0c;能够动态的增加列…

Mysql 5.7 故障恢复处理记录

mysql 数据库是社会普遍认可的非常流行的数据库中间件之一&#xff0c;一套业务系统&#xff0c;数据库的维护也是至关重要的。 应某位网友的要求&#xff0c;我将MySQL 5.7出现故障的恢复的过程记录一下。 问题出现&#xff1a; 2020-05-19T11:48:11.883641Z 0 [ERROR] Inn…

了解XMLHTTP异步调用WebService

眼下AJAX炒的很火&#xff0c;它是javascript和xml的技术结合&#xff0c;异步交互、JavaScript脚本和XML封装数据是AJAX的三大特征。xmlhttp是ms几年前就有的技术了&#xff0c;近年也有不少相近的架构&#xff0c;上篇文章介绍了在客户端用脚本进行WebService调用&#xff0c…

北京大学陈斌教授 python_Python程序设计(胡新明)

Python [paɪθən] 语言&#xff0c;由Guido van Rossum大牛在1990年发明&#xff0c;它是当今世界最受欢迎的计算机编程语言&#xff0c;也是一门对大多数人“学了能用、学了有用、学会能久用”的计算生态语言。本课程的教学目的是使学生具备&#xff1a;通过 Python 程序设计…