• 数据库概念和基本操作


    一:为什么要使用数据库?

      基于之前所学,数据要想永久保存,都是保存在文件中的,这就存在几个问题:

      1.程序所有的组件就不可能运行在一台机器上

    #因为这台机器一旦挂掉则意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,就一台机器的性能垂直进行扩展是有极限的。
    
    #于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行。

      2.数据安全问题

    #根据1的描述,我们将程序的各个组件分布到各台机器,但需知各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的。但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。
    
    #于是我们想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(用socket实现),即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理。。。。

      3.并发

    根据2的描述,我们必须写一个socket服务端来管理这台机器(数据库服务器)上的文件,然后写一个socket客户端,完成如下功能:
    #1.远程连接(支持并发)
    #2.打开文件
    #3.读写(加锁)
    #4.关闭文件
    也就是说:
    #我们在编写任何程序之前,都需要事先写好基于网络操作一台主机上文件的程序(socket服务端与客户端程序),于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。

    二:什么是数据库?

      2.1什么是数据?

      描述事物的符号记录称为数据,描述事物的符号可以是数字,也可以是文字,图片,图像,声音,语言等,数据有多种表现形式,它们都可以经过数字化后存入计算机。

      2.2什么是数据库?

      数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。

      数据库是长期存放在计算机内、有组织、可共享的。

      数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并且可以为各种用户共享。

      2.3数据库与文件存储数据区别

      数据库本质上是通过文件来存储数据的,数据库的概念即使通过系统的管理存储数据的文件。

    三:数据库管理系统(DataBase Management System简称DBMS)

      1.数据库介绍

      数据库服务器端:存放数据库的主机集群

      数据库客户端:可以连接数据库的任意客户端

      数据库管理员:DBA

      #socket套接字的C/S架构应用

      2.数据库分类

        2.1关系型数据库:

        1.有表的概念

        2.以表中一条条记录存储数据

      MySQL,Oracle,SQL sever,access,db2

      MySQL主要用于大型门户,例如搜狗,新浪等,主要优势是开放源代码,因为开放源代码整个数据库是免费的,是甲骨文公司产品。

      Oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高,也是甲骨文公司的产品

      SQL server是微软公司的产品,主要应用于大中型企业,如联想、方正等。

        2.2非关系型数据库

        1.没有表的概念

        2.通过key-value键值对方式存储数据

      mongodb,redis,memcache

      3.数据库服务器,数据库管理系统,数据库,表与记录的关系

      记录:多个字段的信息组成一条记录,即文件中的一行内容

      表:多条记录构成一张表,本质就是文件

      数据库:多张表构成一个数据库,本质就是文件夹

      数据库管理系统:例如MySQL,就是一个软件

      数据库服务器:一台计算机(对内存要求较高)

    四:MySQL

      MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下公司。其最流行的就是关系型数据库管理系统,在web应用方面MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。

      1.下载安装

      官网:http://dev.mysql.com/downloads/mysql

      2.解压到安装的指定目录

      3.添加环境变量

      【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】(或者:前往数据库安装路径,bin文件夹下,cmd执行mysqld启动mysql服务器端,前往数据库安装路径,bin文件夹下,cmd执行mysql启动mysql客户端连接服务器端)

       4.初始化

      mysql --install

      5.将mysql服务器添加到系统服务

      在系统服务中启动mysql,mysqld --install,进入系统服务: win+r => services.msc => 找到mysql服务手动启动或关闭

      6.连接数据库

      mysql -hlocalhost -P3306 -uroot -p

    通过最高权限进入数据库,要采用root用户进入,连接本地数据库:mysql -uroot -p
    
    查看mysql版本:select version()
    查看当前用户:select user()
    查看mysql下的(当前用户可以操作)所有数据库:show databases;

      7.密码操作

        7.1知道旧密码的情况下

        修改密码:mysqladmin -uroot -p旧密码 password"新密码"

         7.2遗忘旧密码的情况下

        1.绕过授权表启动服务(安全认证的服务停止): mysqld --skip-grant-tables;

         2.以任意密码登录root用户: mysql -uroot -P任意

        3.更新密码: update mysql.user set password=password("新密码") where user=root and host="localhost"
        4.刷新权限: flush privileges;

       8.统一字符编码(为mysql服务指定配置文件)

      在mysql的解压目录下,新建my.ini文件(在cmd里面创建的命令:type nul>文件名.文件后缀)

       设置配置信息并保存:  

      [mysqld]
      character-set-server=utf8
      collation-server=utf8_general_ci
      [client]
      default-character-set=utf8

       重启服务

      查看修改结果:s

     五:库的基本操作

    前提:连接上数据库
    1.增,创建数据库
    采用默认编码集: create database db1;  # db1为数据库名
    自定义编码集: create database db1 charset="gbk";
    2.查,查看数据库全部信息
    纵观所有的数据库:show databases;
    详细信息:show create database db1;
    3.改,修改数据库编码集
    alter database db1 charset="utf8"
    4.删,移除数据库
    drop database db1;

    六:表的基本操作

    前提:在具体的某个库下创建表
    进入指定的数据库:use db1
    确定当前使用的数据库:select database();
    1.增,创建表(字段1,类型,... ,字段n 类型)
    create table t1(name char,age int);
    2.查,查看表信息
    纵观所有的数据库:show tables;
    详细信息:show create table t1;
    表字段结构信息:desc t1;
    3.改
    修改字段属性:alter table t1 modify name char(20);
    修改字段名:alter table t1 change name usr char(16);
    修改表名:alter table t1 rename t2;
    4.删,移除表
    drop table t1;

    七:字段的基本操作

    前提:知道具体操作的是哪张表
    1.增,添加字段
    insert into t1(usr,age) values ("aa",18),("bb",8);
    2.查
    select * from t1;
    3.改
    update t1 set age=28 where usr="aa";
    4.删
    delete from t1 where age>8;
  • 相关阅读:
    歌曲汇总
    赤道附近
    看樱花(也有很多其他花)
    线程池异常处理之重启线程处理任务
    ElasticSearch Index操作源码分析
    探究ElasticSearch中的线程池实现
    由字典树想到的
    ElasticSearch 启动时加载 Analyzer 源码分析
    Elasticsearch6.3.2启动过程源码阅读记录
    Elasticsearch High Level Rest Client 发起请求的过程分析
  • 原文地址:https://www.cnblogs.com/liuxiaolu/p/10235398.html
Copyright © 2020-2023  润新知