数据库的基本概念

什么是数据库

字面意思数据库就是存储数据的仓库,正常情况下我们存储数据的方式有:

  1. 列表,字典,元组……等

    这些都存在内存中

    优点:存取速度快

    缺点:计算机断电就消失了

  2. 文件存储

    通过文件进行存储,保存在硬盘

    优点:永久保存

    缺点:存取速度慢

而我们的数据库也是通过文件进行存取,它是一套基于CS架构的客户端和服务器程序,最终数据都会存储在服务器的磁盘上

为什么要使用数据库

使用文件存储带来的问题:

  1. 存取速度慢

  2. 单台机器容量有上限,且程序可能会在不同的机器上运行

    如果使用单台机器,性能有上限,所以当一台机器无法满足客户访问需求时,就需要增加机器来共同完成任务

    • 分布式 每一个服务器提供不同的服务

      优点:降低了程序之间的耦合度,更加容易维护

      缺点:通讯比较繁琐,容灾性比较差

    • 集群 所有的服务器提供一样的服务

      优点:容灾性强,易扩展,随时可以增加删减服务器数量

    如此一来,我们用户的数据就会分布在不同的服务器上,我们该怎样获取用户数据呢?

    只能通过网络取进行访问

  3. 用户权限管理

  4. 多个客户端并发访问,无法保证数据安全

数据库的分类

  1. 关系型数据库

    数据之间存在相互关联关系,数据库可以维护这种关系

    存储介质:一般是磁盘

    常见的关系型数据库:

    1. Mysql

      目前最流行的关系型数据库,适用于中小型企业

    2. SQL server

      微软旗下产品,只能在Windows平台上运行

    3. oracle

      目前最强大的关系型数据库,在集群和用户管理上非常突出,适合大型企业

    4. db2

      IBM产品,主要面向企业级用户,通常和硬件捆绑销售

  2. 非关系型数据库

    数据之间不存在关系,需要用户自己维护数据之间的关系

    存储介质:一般是内存

    常见的非关系型数据库:

    1. mongoDB
    2. redis
    3. memcache

数据库的重要概念

名称 概念
数据(Columu) 文件中的某一个字符串
记录(Row) 文件的某一行
表(Table) 某个文件
库(DataBase) 文件夹
DBMS 数据库管理系统
数据库服务器 运行DBMS的计算机

数据库的安装

一般采用压缩包的方式进行安装,直接解压到本地就可以了

安装步骤

  1. 先去 https://dev.mysql.com/downloads/mysql/ 下载Mysql社区版本,选择版本号,建议使用5.6版本

  2. 下载完成后,解压到本地

  3. 添加环境变量

  4. 注册系统服务

    通过管理员身份运行cmd

    注册:mysqld --install 将mysqld服务器添加到服务中,能够开机进行自启

    启动服务:net start mysql 启动服务器

    停止服务:net stopmysql 启动服务器

简单使用数据库

  1. 在cmd终端输入mysql启动客户端,此时是以游客的身份进行登录

  2. 如果要进行登录操作,就需要在终端里指定用户名密码等参数

    命令:mysql -h127.0.0.1 -P3306 -uroot -p

    常见参数:

    1. -h 指定主机名称,在本机运行就是127.0.0.1,一般默认为主机,可以不写
    2. -P 指定端口,默认为3306,可以不写
    3. -u 指定用户名,root是管理员身份
    4. -p指定密码,root默认密码为空
  3. 管理员密码设置

    1. 知道原始密码

      • 先登录进去,然后执行更新语句进行修改

        输入:update mysql.user set password=password("新密码") where host="localhost" and user="root"

        刷新权限

        输入:flush privileges

      • 使用mysqladmin小工具

        命令:mysqladmin -uroot -p原始密码 password 新密码

    2. 不知道原始密码

      • 跳过授权表,手动启动mysqld,指定参数

        命令:

        1. mysqld --skip-grant-tables
        2. update user set password = password("新密码") where host="localhost" and user="root";
      • 重启mysqld就可以了

  4. 库的操作

    # 切换数据库
    mysql> use 数据库名称 # 查看所有数据库
    mysql> show databases; # 必须加分号 # 查看数据库详情
    mysql> show create database 数据库名称; # 创建新的数据库
    mysql> create database 数据库名称; # 创建新的数据库,并指定编码方式
    mysql> create database 数据库名称 charset 编码方式; # 不能加- # 修改数据库的编码方式
    mysql> alter database 数据库名称 charset 编码方式; # 删除数据库
    mysql> drop database 数据库名称;

    数据库命名规范:

    1. 不区分大小写
    2. 不要使用关键字,例如create,drop……
    3. 不能使用纯数字
    4. 可以使用下划线,通常是字符数字下划线组合使用
  5. 表的操作

    # 创建表
    mysql> create table 表名称(列名称1 数据类型,列名称2 数据类型,……) charset 编码方式; # 查看当前库下的表
    mysql> show tables; # 查看表结构
    mysql> desc 表名称 # 查看表的创建详情
    mysql> show create table 表名称; # 删除表
    mysql> drop table 表名称; # 清空表数据
    mysql> truncate table 表名称; # 修改表名
    mysql> rename 旧的表名称 to 新的表名称; # 修改表的编码
    mysql> alter table 表名称 charset 编码方式(utf8); # 添加字段
    mysql> alter table 表名称 add 列名称 数据类型; # 删除字段
    mysql> alter table 表名称 drop 列名称; # 修改数据类型
    mysql> alter table 表名称 modify 列名称 新的数据类型; # 修改列名
    mysql> alter table change 旧的列名称 新的列名称 数据类型;

MySQL基础-1的更多相关文章

  1. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  2. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  3. 【夯实Mysql基础】记一次mysql语句的优化过程

    1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...

  4. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  5. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  6. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  7. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  8. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  9. MySQL基础(五)——视图

    MySQL基础(五)--视图

  10. MySQL基础(四)——索引

    MySQL基础(四)--索引

随机推荐

  1. 201871010126 王亚涛 《面向对象程序设计(java)》 第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  2. getElementsByName兼容ie 但并不是兼容ie下的所有标签

    document.getElementsByName('someName') 返回一个节点列表(数组) document.getElementById('id') 返回一个节点或者null 注意在IE ...

  3. no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]]

    今天down了一个开源项目,启动后一直存在如下错误信息: ERROR in ch.qos.logback.core.joran.spi.Interpreter@26:42 - no applicabl ...

  4. cookie session jwt-token

    http是无状态的,即请求之间是相互独立的:即提供用户名/密码验证后,下次还需要再次提供 而cookie就是解决这个问题的 cookies 服务器验证通过后,在响应头中设置set-cookies,浏览 ...

  5. ESA2GJK1DH1K升级篇: STM32远程乒乓升级,升级流程源码详细说明

    前言 1.BootLoader程序,升级简要流程图 2.其实主要的就是把程序文件写入环形队列,然后环形队列取出来数据写入Flash 3.用户程序,简要流程图 下面的读一下,有个印象就可以: 说白了就是 ...

  6. Java高级开发_性能优化的细节

    一.核心部分总结: 尽量在合适的场合使用单例[减负提高效率] 尽量避免随意使用静态变量[GC] 尽量重用对象,避免过多过常地创建Java对象[最大限度地重用对象] 尽量使用final修饰符[内联(in ...

  7. windows 中如何定位恶意软件的藏身位置

    目录 一: 下载spy++ 打开后 点击 搜索下面的查找窗口(Alt+F3) 点击 查找程序工具 右侧的 靶子一样的图标,鼠标左键按住不放,拖放到 弹窗上面,弹窗周围会出现 黑框. 然后 我们点击确定 ...

  8. [Gamma]Scrum Meeting#5

    github 本次会议项目由PM召开,时间为5月30日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 撰写博客,组织例会 swoip 前端显示屏幕,翻译 ...

  9. jquery设置bootstrap-select的默认选中值

    <select id="mSelect"></select> $("#mSelect").val(["1",&quo ...

  10. 【06月18日】A股滚动市净率PB历史新低排名

    2010年01月01日 到 2019年06月18日 之间,滚动市净率历史新低排名. 上市三年以上的公司,2019年06月18日市净率在30以下的公司. 来源:A股滚动市净率(PB)历史新低排名. 1 ...