zoukankan      html  css  js  c++  java
  • MySQL

    数据库概念:

      文件作为数据库,数据格式千差万别

      将保存数据的地方统一起来

    MySQL一款应用软件
    
      用来帮你操作文件的
    
      只要是基于网络通信,底层都是socket !!!
    
      服务端
    
        socket通信
        收发消息
        解析命令(sql语局)
    
      客户端
    
        socket通信
        收发消息
        解析命令(sql语句)
    DBA:
    
      sql语句优化
    mysql

    什么是数据(Data)

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

    什么是数据库(DataBase,简称DB)

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

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

    什么是数据库管理系统(DateBase Management System 简称DBMS)

      科学地组织和存储数据,高效获取和维护数据成了关键 就用到了一个系统软禁--数据库管理系统

      关系型数据库

        存储数据的时候,对于数据有条件限制

        数据与数据之间有关联

        通常都是以表格的方式存储

          第一步需要创建表结构!

        Oracle ,sqlite,db2,sql server ,MySQL ,access

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

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

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

      非关系型数据库

        数据存储方式 k ,v  键值对的形式

        redis,mongodb,memcache

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

    记录:1 刘海龙 33123 22(多个字段的信息组成一条记录,即文件中的一行内容)

    表:student,school,class_list (即文件)

    数据库:oldboy_stu (即文件夹)
    数据库管理系统:mysql (是一个软件)
    数据库服务器:一台计算机 (对内存要求比较高)
     
    总结:
      数据库服务器:运行数据管理软件
      数据库管理软件:管理数据库
      数据库:即文件夹,用来组织文件/表
      表:即文件,>>表头:字段   用来存放多行内容/多条记录
    https://www.jb51.net/article/87898.htm
    5.6 官方版安装
    启动
        服务端
            mysqld
        客户端
            mysql -h 127.0.0.1 -P 3306 -uroot -p
            也支持简写
            mysql -uroot -p
            让你输入密码,默认密码是空 不用管直接敲回车
        sql语句第一条命令
            查看所有数据库
                show databases;
        注意:输入sql语句的时候,一定要用英文分号结束
        如果输入的sql语句错了 不想执行的话可以 不加分号 换行后在后面跟上c取消命令的执行
        退出客户端:exit quit
    
    1 将mysql 启动文件路径添加到环境变量
    2 将mysqld制成系统服务
        1 一点要先将mysqld杀死
        2 mysql --install  将mysqld 服务端制作成系统服务(开机自启动)
    3 设置密码
        mysqldmin -uroot -p password '123'
        
        #第一次修改完以后,之后要还修改密码需要
        mysqldadmin -uroot -p123 password '123456'
        #为了后续调试方便,这里把密码设为空值
        mysqld -uroot -p123 passsword '新密码'
    
    4 破解密码
        1 先关闭服务端
        2 以跳过用户密码认证模式重新启动服务端
             mysqld --skip-grant-tables
        3 以管理员登录
        4 修改mysql库里面的user表
           update mysql.user set password=password(123) where user='root' and host ='localhost';
        5 先关闭跳过验证的服务端,以正常模式启动服务端
        6 输入用户密码正常登录
    
    5 解决编码问题
        1 在mysql根目录下新建一个my.ini 的配置文件,在里面固定加上下面的配置即可设置编码问题
        [mysqld]
            character-set-servet=utf8
            collation-server=utf_geeral_ci
        [client]
            default-character-set=utf8
        [mysql]
            default-character-set=utf8
        2 重新启动你的mysql服务端,配置才会生效
    
    6 基本sql语句操作
        库
            增  create database db1 charset utf8;
            查  show create database db1;
            改  alter database db1 charset gbk;
            删   drop database db1;
    
        表
           应该在具体某一个库下面创建表
            1 切换到指定的库内 use 库名;
            增  create table userinfo(id int ,name char);
            查  show tables
                 show create table userinfo 
                 desc userinfo <=> describe userinfo
            改  alter table userinfo modify name char(16);
                  提醒,在创建char类型字段的时候,建议加上数字(32)
            删    drop table userinfo;
        
        数据
            增
                insert into userinfo values (1,'eogn') ,(2,'echo');
                #into 可加 可以不加,userinfo 可以不指定,默认就是在当前库下
            改    
                update  userinfo set name ='DSb' where id >1;
                update userinfo set name=‘Dsb’ where id=2 or id=3;
    
            查 
                select id ,name from userinfo ; 
                #userinfo 可以不指定,默认当前库下
               select * from userinfo;
            
            删
                delete from userinfo where id =1;
            
                清空表:
                    delete from userinfo ; 
                    如果有自增id ,新增的数据,任然是以删除前的最后一样作为起始。
                    truncate table userinfo; 
                    数据量大,删除输入比上一条块,且直接从零开始
                    auto_increment 表示:自增
                    promary key 表示:约束(不能重复且不能为空);加速查找
    mysql 语句

    表操作

    存储引擎

    文件格式有很多种,对应的软件也有很多种txt pdf等

    针对不同类型的文件,需要对应有不同的软件帮助我们去操作

    #查看所有的存储引擎

    show engines;

    #查看不同存储引擎存储表结构文件特点

    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;

    insert into t1 values(1);
    insert into t2 values(1);
    insert into t3 values(1);
    insert into t4 values(1);

    [root db1]  E:mysql5.6data 发现后两种存储引擎只有表结构,无数据

    db.opt  t1.frm  t1.ibd  t2.MYD  t2.MYI  t2.frm  t3.frm  t4.frm

    #memory 在重启mysql或者重启机器后,表内数据清空
    #blackhole 往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录



  • 相关阅读:
    谈谈软件的开发及成长历程
    Winform开发框架之简易工作流设计
    如何快速开发树形列表和分页查询整合的WInform程序界面
    邮件代收代发功能模块的操作界面设计和阶段性总结
    基于Lumisoft.NET组件的SMTP账号登陆检测
    Winform开发的界面处理优化
    基于DevExpress开发的GridView如何实现一列显示不同的控件类型
    Winform里面的缓存使用
    分享一个Winform里面的HTML编辑控件Zeta HTML Edit Control,汉化附源码
    算法 dfs —— 将二叉树 先序遍历 转为 链表
  • 原文地址:https://www.cnblogs.com/lakei/p/10845453.html
Copyright © 2011-2022 走看看