• 数据库01


    数据库

      数据库就是存储数据的仓库(容器)

      存放数据的方式

        1 变量 无法永久保存

        2 文件处理 可以永久储存

      文件处理的弊端:

        1 文件处理速度慢

        2 文件只能在自己的计算机上读写 无法被共享

      单台计算机的性能终归有限,一旦把服务器拆分后,数据就必须能够被不同计算机共享,必须通过网络,也就是socket

      数据库软件的本质就是一个基于socket(tcp)的c/s结构的程序

      如果自己实一个数据库软件,需要解决几个问题

        1 一旦数据共享,就存在竞争问题,需要处理锁

        2 不是所有的TCP连接请求都要接受,得加上安全验证

        3 文件处理带来的效率问题,需要想办法来提高处理速度

      现在很多数据库软件可以直接使用

      1 关系型数据库

        该类型的数据,提供某种机制,可以帮你维护

        数据与数据之间存在某种关系

        一般都是基于文件实现

        优点:容量大,可以永久存储

        例如:

          mysql 免费开源,支持中小型企业并发

          oracle 商用收费,学习免费,功能比mysql强大,用户挂了和集群

          SQLServer 属于微软生态圈,只能运行于windows上

          mariaDB 基于mysql开发的mariaDB 使用起来一模一样

          DB2 IBM公司  

          sqlite 非常轻量级的数据库

        共同特征都支持SQL :结构化查询语句,学习数据库的重点也就是SQL语句

      2 非关系型数据库

        数据与数据之间是独立,不存在任何关联关系

        以key:value的形式来存储数据,一般基于内存

        优点:速度快   问题:断电丢失

          mongoDB  redis  memcache

      这两种数据库应该搭配使用,把数据量大的存在关系型中

      把经常访问的放到非关系型中,提高访问速度

    数据库相关概念

      数据:本质上是一堆带有含义的符号

      数据记录:多个数据组成了一条完整的记录

      表:本质就是一个文件,里面存储一堆数据记录

      库:本质就是一个文件夹,里面存放一堆表

      DBMS:data base manager system

          数据库管理系统(TCP的服务器)

          负责挂了一堆文件夹

      数据库服务器:指定是运行有TCP服务器的程序的计算机

      DBMS和服务器一般是由运维管理

      mysqld是服务器主程序

      mysql 是无界面客户端需要在CMD运行

      mysql连接服务器需要指定以下参数

      -h 主机地址(ip)

      -p 端口号(默认3306)

      -u 用户名

      -p 密码

      服务器和客户端在同一台电脑,可以省略主机地址和端口号

    mysql安装

      1 带界面的路next

      2 压缩包,直接解压

        添加环境变量

        注册系统服务(mysqld --install)

      修改管理员密码

        1 知道原密码(mysqladmin -uroot -p password 新密码)

        2 不知道原密码 可以在启动服务器时跳过授权表(mysqld --skip-grant-tables)

          无密码登录服务器,执行修改密码的指令

          (updata mysql.user set password = password("新密码") where user = "root" and host = "localhost")

    关于库的语句

      创建库  (create database 库名称;)

      删除库  (drop database 库名称;)

      修改库的属性  (alter database 库名称 charset = "新编码";)

      查看创建库详细信息  (show create database 库名称;)

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

      选择一个数据库  (use 库名称;)

    关于表

      创建表

        create table 表名称(字段 类型,字段,类型);

        create table 库.表名称(字段 类型,字段,类型);

      查看所有表  (show tables;)

      查看表的详细信息  (show create table 表名;) 

      查看表结构  (desc 表名;)

      改

        alter table 表名 charset = "新编码";   改编码

        alter table 表名 add 字段 类型;  添加字段

        alter table 表名 drop 字段;  删除字段

        alter table 表名 modify 字段 新类型;  修改字段的类型

        alter table 表名 change 旧字段 新字段 新类型;  修改字段的名称和类型

        rename table 旧表名 to 新表名; 修改表的名称

      删除  drop table 表名;

    数据相关

      插入

        insert into 表名 values(值,值...);  插入一条

        insert into 表名 values(值,值...),(值,值...),(值,值...)...;  插入多条

        insert into 表名(字段) values(值)   指定插入字段

      查看  select * from 表名;

      修改  update 表名 set 字段 = 值 where 字段 = 值;

      删除   delete from 表名 where 字段 = 值;

      

  • 相关阅读:
    windows server2012 R2 本地策略编辑
    iOS 获取相册中图片的名字 url
    iOS -[PFPASIDataCompressor compressBytes:length:error:shouldFinish:] in PFPGZIPInvocationCompressor.o
    iOS 系统根据导航栏和状态栏自动修改布局
    iOS 本地推送通知
    iOS开发日记59-推荐两本好书
    iOS开发日记57-详解Quartz 2D
    iOS开发日记56-详解UIImage
    iOS开发日记55-隐式与显式动画
    iOS开发日记54-Xcode7调试神技
  • 原文地址:https://www.cnblogs.com/LinChengcheng/p/10523616.html
Copyright © 2020-2023  润新知