数据库基本概念

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 数据库基本概念 一、 数据库相关概念 1、两种硬件扩展方式    a、垂直扩展:针对一台计算机    b、水平扩展:多台普通计算机     2、数据库相关概念    数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端)--简称数据库(运维角度)    数据库管理管理系统.

数据库基本概念

一、 数据库相关概念

1、两种硬件扩展方式

   a、垂直扩展:针对一台计算机

   b、水平扩展:多台普通计算机

   

2、数据库相关概念

   数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端)--简称数据库(运维角度)

   数据库管理管理系统RDBMS(本质就是一个C/S架构的套接字软件)--简称数据库(运维角

   注:一般数据库管理系统的服务端安在linux操作系统上

      mysqld———服务端; mysql———客户端(python用不了mysql自带的服务端,需要用pymysql)

     a、支持并发

     b、锁的问题

     c、对客户端请求进行认证

     d、存取效率(降低IO次数)

   库(文件夹)--简称数据库 (程序员角度)

   表(文件):需设置字段(表头)

   记录:抽取一个事物所有典型的特征/数据(一堆数据的集合)

     egon,18,180,male,True

   数据:

     name='egon' age=18 height=180 sex="male" beutiful=True

   SQL语句:不同数据库软件使用/定义的SQL语句不完全相同,但差别不大

 

3、数据库管理系统/软件分类 DBMS:

   关系型RDBMS:

     有表结构,存取数据前必先定义表结构,存数据必须按照字段的类型或者约束来

     典型代表:MySQL,Oracle,DB2,SQL server(银行业常用)

   非关系型(爬虫类常用):

     存取数据都是采用key:value的形式

非关系型:Mongodb,redis,memcache(较不常用)

 

二、 基本管理(windows系统)

1、安装(windows系统解压文件后即完成安装)

 

2、加环境变量

 

3、把mysqld软件做成系统服务

    注意:制作之前先把mysql d关掉

    

    C:\Windows\system32>tasklist |findstr mysqld(查看进程)

    mysqld.exe                    8372 Console                    2    454,916 K

    C:\Windows\system32>taskkill /F /PID 8372

    成功: 已终止 PID 为 8372 的进程。(关进程)

(可以直接taskkill /F /IM mysqld.exe)

移除:mysqld --remove

    制作:

        mysqld --install

    查看:

        windows+r

        输入services.msc(或者输入中文服务)

 

4、启动:

   未制作系统服务的启动方式:

     1、启动服务端

        net start mysql

 

     2、启动客户端(客户端登录)

        mysql -uroot -p -h127.0.0.1 -P 3306 #3306为mysql默认端口

        如果是在本机登录mysqld服务端可以简写:mysql -uroot -p #本机IP已知,端口默认------->p(小写)是密码,P(大写)是端口

 

   制作完系统服务后就可以鼠标点击启动或关闭mysql(或者net stop mysql):

     windows+r

     输入services.msc

     找到mysql,启动或关闭

 

5、破解管理员密码

   1、先关闭mysqld服务端

   2、以跳过授权表的方式在命令行中启动mysqld服务端

      mysqld --skip-grant-tables (伪启动)

   3、客户端直接以无密码的方式登录root用户,修改密码

      mysql -uroot -p

 

      mysql> update mysql.user set password=password("123") where user="root" and host="localhost";

      Query OK, 0 rows affected (0.00 sec)

      Rows matched: 1  Changed: 0  Warnings: 0

 

      mysql> flush privileges;  #每次改完后立刻刷新下

      Query OK, 0 rows affected (0.00 sec)

 

   4、在命令行中用taskkill杀死mysqld服务,然后正常启动mysqld

      taskkill /F /PID 131312

 或者 taskkil /F /IM mysqld.exe(不用pid号)

 

上面的修该密码操作:直接password=(“密码”)

      def password(mingwen):    #password模块可帮忙加密明文,直接调取即可

          import hashlib

          m=hashlib.md5() # hashlib模块两个应用(文件一致性检验)(对明文密码加密(或修改))

          m.update(mimgwen)

          return m.hexdigest()

 

6、统一字符编码

    1、在mysql安装目录下新建my.ini文件

    2、修改my.ini

        [mysqld]--------》服务端置

        character-set-server=utf8

        collation-server=utf8_general_ci

 

        [client]--------》客户端全局性配置

        default-character-set=utf8

 

        [mysql]--------》Mysql自己定制的配置(优先以自己的这里为准,自己这没有配置,再去客户端全局性配置里面找)

        default-character-set=utf8

 

    3、重启mysqld

4、客户端登录,输入\s查看结果

 

三、 基本管理(mac系统)

1、安装 (mysql-5.6.35-macos10.12-x86_64.dmg)

 

2、加环境变量

   https://blog.csdn.net/con_heart/article/details/53766931

 

   其实和windows一样 在高级属性里加入环境变量是为了在任何一个路径下输入命令的时候都能找到这个命令,就不用每次要输入某个命令(如登录mysql)都要先进入命令所在的文件夹(一般挺长的)。下面就是把mysql的命令的路径加入环境变量:

   1.打开终端,输入: cd ~

     会进入~文件夹

 

   2.然后输入:touch .bash_profile

     回车执行后,

 

   3.再输入:open -e .bash_profile

     会在TextEdit中打开这个文件(如果以前没有配置过环境变量,那么这应该是一个空白文档)。如果有内容,请在结束符前输入,如果没有内容,请直接输入如下语句:export PATH=${PATH}:/usr/local/mysql/bin

     然后,保存,退出TextEdit(一定是退出),关闭终端并退出。

 

   4.再次打开终端,直接输入 【 mysql -u "你的用户名"  -p 】 回车 再输入密码 这时候就能登入mysql了

 

3、查看mysql文件夹

   前往文件夹 -》 /usr/local/mysql

 

4、启动:

   访达-》系统偏好设置

   PATH="$PATH":/usr/local/mysql/bin

   mysql -u root -p #-p后面不加空格,直接接密码

 

5、破解管理员密码

   https://blog.csdn.net/lishaojun0115/article/details/52805563

   

   step1:苹果->系统偏好设置->最下边点MySQL 在弹出页面中 关闭mysql服务(点击stop mysql server)

   step2:进入终端输入:cd /usr/local/mysql/bin/

          回车后 登录管理员权限 sudo su

          回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe --skip-grant-tables &

          回车后mysql会自动重启(偏好设置中mysql的状态会变成running)

 

   step3:

          输入命令 ./mysql

          回车后,输入命令 FLUSH PRIVILEGES;

          回车后,输入命令 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码');

 

   至此,密码修改完成,可以成功登陆。

 

6、统一字符编码(防止乱码,统一成utf-8)

   1、复制my.cnf文件,并在其中添加以下内容

   [mysqld]

   character-set-server=utf8

   collation-server=utf8_general_ci

   #basedir=/usr/local/mysql/

   #datadir=/usr/local/mysql/data/

   [client]

   default-character-set=utf8

   user=root

   password=******

   [mysql]

   default-character-set=utf8

   #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

   2、关闭mysql服务端

 

   3、在\etc下添加my.cnf

 

   4、重启mysql服务端,在客户端中登陆并查看(\s)

 

7、其他:

   MAC电脑安装Mysql服务器和Navicat for mysql客户端

   https://blog.csdn.net/kuangdacaikuang/article/details/76515985

 

四、 基本的SQL语句(库,表,记录的增删改查)

#SQL语句的主要操作对象为库,表,记录;其中对记录的操作最为常见

1、文件夹(库)#库名可按照python的命名规则来

    增

        create database db1 charset utf8;(增加库并指定字符编码)

    改

        alter database db1 charset gbk;  #库名修改不了,只能修改字符编码

而且文件夹(库)指定字符编码,如果里面文件没有指定,则默认使用文件夹的

字符编码

    查

        查看所有库的库名

        show databases;  #其中information_scheme是内存中的表

        单独查看某一个库的信息

        show create database db1;

    删

        drop database db1;

 

2、文件(表)#表名可按照python的命名规则来----》往往后期常用的操作是增,查

    首先切换文件夹:

        use db1;   # 如果这里没有切换,也可后续db1.t1切换

        select database();   #查看当前所在的文件夹(库)

    增

        create table t1(id int,name char);  #char即sql中的str

create table db1.t1(id int,name char);#这是前面忘记切换文件夹的写法

    改

        alter table t1 modify name char(16); #16为存取限制,最多存取16个字符

alter table t1 drop age; # 删除表t1里面的age属性

alter table t1 add age int; # 往表里面增加东西,并指定类型

alter table t1 change name NAME char(12); # 修改表里面的字段名

alter table employee rename emp; #修改表名

补充:

alter table 表名 add primary key(字段);#建主键

alter table 表名 drop primary key;#删主键

 

    查

        查看当前库下所有的表名

        show tables;

        查看t1表的详细信息

        show create table t1;

        查看表结构(select * from ...是查看表里面的记录)

        desc t1;(或者describe t1)

    删

        drop table t1; # 删除表t1(文件t1)

truncate t1;#清空表

 

3、文件的一行行内容(记录)

    增

        insert into db1.t1 values

        (1,'egon'),    #增加前最好检查下之前表的charset

        (2,'alex'),

        (3,'lxx');

    改

        update db1.t1 set name='sb' where id > 1;#将满足where后面条件的名字(

或其他属性)进行修改

    查

        select id,name from db1.t1;#查看db1下的t1列表的id,name属性

        select * from db1.t1 where age >20;#查看列表t1中满足where后面条件的所

有属性(*表示所有)

    删

        delete from db1.t1 where name = "SB" ;

 

 

4、;为SQL语句的语句结束提示符

   \c 若语句错误,想退出每次输入并不影响结果时使用

 

五、 存储引擎

#Mysql使用的线程池

 

create table t1(id int)engine=innodb;

create table t2(id int)engine=myisam;

create table t3(id int)engine=blackhole;

create table t4(id int)engine=memory;

 

常见innodb,myisam,memory,blackhole几种存储引擎,最常用的为innodb innodb:亦为默认存储引擎,支持事务,行锁设计,外键 

t1.frm (frame) t1.ibd (innodb data); 存入硬盘

 

myisam:t2.MYD (myisam data) t2.MYI (myisam index) t2.frm (frame); 存入硬盘

 

blackhole: t3.frm

 

memory: t4.frm; 存入内存,关闭服务端后,数据清空

原文地址https://blog.csdn.net/qq_35540539/article/details/81271255

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
363 0
|
2月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
72 5
Mysql(3)—数据库相关概念及工作原理
|
2月前
|
关系型数据库 MySQL 数据库
MySQL数据库:基础概念、应用与最佳实践
一、引言随着互联网技术的快速发展,数据库管理系统在现代信息系统中扮演着核心角色。在众多数据库管理系统中,MySQL以其开源、稳定、可靠以及跨平台的特性受到了广泛的关注和应用。本文将详细介绍MySQL数据库的基本概念、特性、应用领域以及最佳实践,帮助读者更好地理解和应用MySQL数据库。二、MySQL
135 5
|
2月前
|
SQL 存储 安全
SQL查询数据库:基础概念与操作指南
在数字化时代,数据库已成为信息管理的重要工具之一。作为管理和操作数据库的核心语言,SQL(结构化查询语言)已成为数据管理和查询的关键技能。本文将全面介绍SQL查询数据库的基本概念、语句和操作指南,以帮助初学者快速上手,同时为进阶用户提供有价值的参考。一、数据库与SQL简介数据库是一种存储、管理和检索
58 3
|
5月前
|
SQL 监控 Oracle
|
7月前
|
存储 关系型数据库 数据库
不直接使用文件存储?浅谈数据库的三级模式及重要概念
【5月更文挑战第21天】本文介绍数据库用于解决传统文件系统如Excel的数据冗余、不一致性和访问困难等问题。关系型数据库通过DBMS实现数据管理,包括外模式(用户视图)、概念模式(全局逻辑结构)和内模式(物理存储)。
165 1
不直接使用文件存储?浅谈数据库的三级模式及重要概念
|
5月前
|
druid Java 数据库连接
Java面试题:解释数据库连接池的概念及其作用,讨论常见的连接池实现。
Java面试题:解释数据库连接池的概念及其作用,讨论常见的连接池实现。
90 0
|
6月前
|
JavaScript 数据库
关系数据库:关系数据结构基础与概念解析
关系数据库:关系数据结构基础与概念解析
51 1
|
6月前
|
存储 数据库连接 数据库
逆向学习数据库篇:表设计和数据库操作的核心概念与流程
逆向学习数据库篇:表设计和数据库操作的核心概念与流程
37 0
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库数据模型概念入门及基础的SQL语句2024
MySQL数据库数据模型概念入门及基础的SQL语句2024
40 0

热门文章

最新文章