• 数据库1


    什么是数据库
    就是存储数据的仓库(容器)
      存储数据的方式
      1.变量 无法永久存储
      2.文件处理,可以永久存储


      文件处理存在的弊端:
      1.文件处理速度慢
      2.文件只能在自己的电脑上读写无法被共享(局域网除外)
        单台计算机的性能终归是有限的
          1.升级你的硬件设备 提升幅度有限 垂直扩展
          2.服务器集群 分布式 横向扩展

      一旦把服务器拆分开后,数据就必须能够被不同计算机共享
      必须通过网络,也就是socket
      数据软件的本质 也就是一个 基于socket(TCP)的C/S结构的程序
      如果自己实现一个数据软件 需要解决的几个问题
        1.一旦数据共享就存在竞争问题,需要处理锁
        2.不是所有的TCP连接请求都要接收,得加上安全验证
        3.文件处理带来得效率,需要想办法来提高处理速度(索引)
      有很多现成数据库软件可以直接使用,又分为两大类
    1.关系型数据库
      该类型得数据 提供某种机制 可以帮你维护数据与数据之间得关系
      例如 学员数据和班级数据可以通过其中一方 找到另外一方
      一般都是基于文件实现
      优点:容量大 可以永久存储
      mysql 免费开源,开源支持中小型企业发展
      oracle 商用收费,学习免费,功能比mysql强大,用户管理和集群
      SQL server 属于微软生态圈,只能运行于Windows上
      mariaDB mysql创始人:韦德纽斯 担心mysql的前程于是基于mysql开发了mariaDB
      DB2 IBM 360
      sqllite 非常轻量级的数据库
      共同特征都支持SQL
      结构化 查询语言
      学习数据库的重点也就是SQL语句
    2.非关系型数据库
      数据与数据之间是独立 不存在任何关联关系
      以key:value得形式来存储数据
      一般基于内存
      优点:速度快
      问题:断电丢失

    该使用哪一类数据库?
      应该搭配使用,把数据量大得存到关系型中 把经常访问得放到非关系型中
      提高访问速度
      数据库相关的概念
      数据本质上一堆带有含义的符号
        name=jack
      数据记录
      多个数据组成了一条完整记录
        name,age,sex
        jack,38,man
        rose,20,woman
      表 本质就是一个文件
        里面存储一堆数据记录
      库 本质就是一个文件夹
        里面放一堆表文件
      DBMS
        data base manger system
        数据库管理系统(TCP的服务器)
        负责管理一堆文件夹(即数据库)
        数据库服务器
        指的是运行有TCP服务器的程序的计算机
    DBMS和服务器一般运维管
      到公司之后会分给你一个账户密码以及服务器地址
      myslqd是服务器主程序
      mysqld警告说:创建文件失败 由于权限不足 用管理员权限运行即可
      mysql是无界面的客户端 需要在CMD运行
      myslq连接服务器需要指定以下参数
      -h主机地址(ip)
      -P端口号
      -u用户名
      -p密码
    服务器和客户端在同一台电脑可以省略主机地址 端口号默认3306 可以省略
    如果不指定用户名和密码 以游客模式登录 什么都看不到

    mysql的安装
      1.带界面 一路next
      2.压缩包 直接解压
        2.1添加环境变量
        2.2注册系统服务
    修改管理员密码
      1.如果知道原始密码 mysqladmin -uroot -p password 123
      2.不知道原密码 可以在启动服务器时跳过授权表
        mysqld --skip-grant-tables
      无密码登录服务器 执行修改密码的指令
      update mysql.user set password = password("新密码") where user = "root" and host = "localhost";

    创建库
    create database 库名称
    删除库
    drop database 库名称
    修改库的属性
    alter database 库名称 charset = "新的编码"
    查看创建库详细信息
    show create database mydb;
    查看所有数据库
    show databases
    选择一个数据库
    use 库名称
    关于库的语句
    增
    create table 表名称(name char,age int);
    create table 库.表名(name char,age int);
    
    查看所有表
    show tables;
    查看表的详细信息
    show create table t1;
    查看表结构 (字段)
    desc t1;
    
    改
    alter table t1 charset = "gbk"; 改编码
    alter table t1 add sex char; 添加字段
    alter table t1 drop sex; 删除字段
    alter table t1 modify age char; 修改字段的类型
    alter table t1 change age ages int; 修改字段的名字和类型
    rename table t1 to table1; 修改表的名称
    
    删除
    drop table table1;
    
     
    
    数据记录相关操作是重点学习对象
    # 一次性插入多条记录
    insert into table_name values("陈麻子",20);
    # 一次性插入多条记录
    insert into table_name values(值1,值2),(值2,值2),...;
    上述语法 值的个数必须与字段的个数相同
    
    # 指定要插入数据的字段
    insert into t2(name) values("我只有姓名啊")
    
    
    查看数据
    select * from t2; * 表示查看所有字段 多个字段用逗号隔开
    
    修改
    update t2 set age = 100; 没有条件则全部修改
    update t2 set age = 100 where name = "";
    update t2 set age = 100,name = "刘铁柱" where name = "" ;
    
    删除数据
    delete from t2 where name = "刘铁柱";
    关于表的
  • 相关阅读:
    查找网页元素对应的js代码
    29 图片缩小案例
    29 三级缓存案例
    [Angular2]eclipse中angular2开发环境的搭建
    28 自定义View流式布局
    28 自定义滑动开关
    28 自定义View侧滑栏
    28自定义View 模仿联系人字母侧栏
    28 自定义View画坐标和柱状图
    JFinal中使用QuartzPlugin报ClassCastException解决方法
  • 原文地址:https://www.cnblogs.com/ShenJunHui6/p/10523367.html
Copyright © 2020-2023  润新知