数据库基本概念

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 数据库基本概念 一、 数据库相关概念 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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
存储 关系型数据库 MySQL
由浅入深:数据库编程概念与实战
由浅入深:数据库编程概念与实战
151 1
|
3月前
|
存储 SQL Cloud Native
深入了解云原生数据库CockroachDB的概念与实践
作为一种全球领先的分布式SQL数据库,CockroachDB以其高可用性、强一致性和灵活性等特点备受关注。本文将深入探讨CockroachDB的概念、设计思想以及实践应用,并结合实例演示其在云原生环境下的优越表现。
|
3月前
|
Cloud Native 关系型数据库 大数据
CockroachDB:云原生数据库的新概念与实践
本文将介绍CockroachDB,一种先进的云原生数据库,它具备分布式、强一致性和高可用性等特点。我们将探讨CockroachDB的基本原理、架构设计以及在实际应用中的种种优势和挑战。
|
24天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
17 2
|
2月前
|
SQL 存储 关系型数据库
sql数据库的相关概念与底层介绍
sql数据库的相关概念与底层介绍
43 0
|
24天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(2)
Oracle数据库基本概念理解(2)
13 1
|
3天前
|
SQL 算法 数据库
数据库系统概念(第三周 第一二堂总结)
数据库系统概念(第三周 第一二堂总结)
|
存储 传感器 数据管理
【软件设计师备考 专题 】面向对象数据库和分布式对象:理解新的数据管理概念
【软件设计师备考 专题 】面向对象数据库和分布式对象:理解新的数据管理概念
50 0
|
23天前
|
存储 SQL 缓存
【软件设计师备考 专题 】数据库模型(概念模式、外模式、内模式)
【软件设计师备考 专题 】数据库模型(概念模式、外模式、内模式)
65 0
|
24天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(1)
Oracle数据库基本概念理解(1)
12 1