• 数据库


    ·一、什么是数据库?(DataBase,简称DB)

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

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

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

    二、什么是数据管理系统?

    mysql 主要用于大型门户,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,oracle主要用于银行、铁路、飞机场大型公司。该数据库功能强大,软件费用高。

    数据库服务器:运行数据库存管理软件

    数据库管理软件:管理——数据库

    数据库:即文件夹,用来组织文件/表

    表:即文件,用来存放多行内容/多条记录

    数据库存管理软件分类

    数据库的本质就是一款基于网络通信的应用程序,它仅仅就是一个基于网络通信的应用程序

    关系型数据库: mysql、oracle、db2、access、sql server

      

    非关系型数据库:redis、mongodb、memcache

    关系型:数据之间彼此有关系或者约束、存储数据的表现形式通常是以表格存储、每次个字段还会有 存储类型的限制,比如姓名只能存字符串,需要有表结构

    非关系型:存储数据通常都是以k,v键值的形式,没有表结构

    三、mysql

    Mysql是一个关系型数据库管理系统,任何基于网格通信的应用程序底层用的都是socket

    mysql不单支持mysql自己的客户端app还支持其他编程语言来充当客户端操作

    服务端

      基于socket通信

      收发消息

      sql语句

    客户端 

      基于socket通信

      收发消息

      sql语句

    库   》》》》 文件夹
    表   》》》》 文件
    记录  》》》 文件内一行行的数据
    
         name    password    hobby
         lili         123            学习
         summer   123          弹琴
    
    表头    表格的第一行字段 
    字段    name、password、hobby
    

      

    MySQL的安装

    参考网站:https://www.mysql.com/

    服务端与客户端

    服务端
    mysql.exe
    
    客户端
    mysql.exe

    在前期配置mysql的时候,cmd终端尽量以管理员的身份运行

    windows+r输入cmd进入的是普通用户终端有一些命令是无法执行的搜索cmd右键以管理员身份运行

    启动

    先切换到mysqld所在的bin目录下,然后输入mysqld即可

    保留原来的cmd窗口重新打开一个

    常见软件的默认端口号
    
    
        mysql    3306
        redis    6379
        mongodb    27017
        django    8000
        flask    5000
    
    Mysql 第一次以管理员身份进入是没有密码的,直接回车即可
    客户端连接服务端完整命令
        mysql -h 127.0.0.1 -p 3306 -uroot -p
    

    sql语句初识

     1、mysql中的sql语句是以分号作为结束的标志
    
     2、基本命令
            show databases;查看所有的库名
     3、连接服务端的命令可以简写
            mysql -uroot -p
     4、当输入的命令不对又不想让服务端执行并返回报错信息,可以用c取消
            错误命令 c
        
     5、客户端退出,退出命令加不加分号都可以执行
            quit
            exit
     6、当你在连接服务端的时候发现只输入mysql也能连接
            但是你不是以管理员身份运行的,只是一个游客模式 

     

    环境变量配置及系统服务制作

    1、如何查看当前具体进程

      tasklist

      tasklist |findstr mysqld

     2、如何杀死具体进程(只有在管理员cmd窗口下才能成功)

      taskkill /F /PID PID号

    环境变量配置

    每次启动mysqld需要先切到对应的文件路径下才能操作太多繁琐

    将mysql所在的文件路径添加到系统环境变量中

    将mysql服务端制作成系统服务(开机自启动)
    
    查看当前计算机的运行进程数
        services.msc
    
    将mysql制作成系统服务
        mysql -- install
    
    移除mysql系统服务
        mysql --remove
    

    设置密码

    mysqladmin -uroot -p 原密码 password 新密码

    改命令直接在终端输入即可,无需进入客户端

    mysqladmin -uroot -p123 password 123456

    破解密码

    忘记密码了怎么办?
    
    可以将mysql获取用户名和密码校验的功能看成是一个装饰器
    装饰在了客户端请求访问的功能上
    
    我们如果将该装饰器移除,那么Mysql服务端就不会校验用户名和密码了
    
    1、先关闭当前mysql服务端
    命令行的方式启动(让Mysql跳过用户名密码验证功能)
    mysql --skip-grant-tables
    
    2、直接以无密码的方式连接
    mysql -uroot -p 直接回车
    
    3、修改当前用户的密码
    update mysql.user set password=password(123456) where 
    user='root' and host='localhost';
    
    真正存储用户表的密码字段,存储的肯定是密文
    只有用户自己知道明文是件么其他人不知道,这样更加的安全
    密码对比也只能对比密文
    
    4、立刻将修改数据到硬盘
    flush privileges;
    5、关闭当前服务端,然后以正常校验授予权表的形式启动
    

    统一编码

    my_default.ini
    ini结尾的一般都是配置文件
    
    程序启动会先加载配置文件中的配置之后才真正的启动
    
    [mysql] 一旦服务端启动立刻启动加载下面的配置
    sql_mode=NO_ENGINE_SUBSTITUION,STRICT_TRANS_TABLES
    [mysql]  一旦客户端启动立刻加载下面的配置
    ...
    [client] 其他客户端
    ...
    需要你自己新建一个my.ini的配置文件
    
    验证配置是否真的是自动加载
    [mysql]
    print('hello world')
    
    修改配置文件后一定要重启服务才能生效
    统一编码的配置,无需掌握真接拷贝即可
    
    偷懒 将管理员的用户名和密码也添加到配置文件中
    [mysql]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default_character_set=utf8
    [mysql]
    user='root'
    password=123456
    default-character-set=utf8
    

    基本sql语句

      

    针对库的增删改查(文件夹)  

    #增
    
    create database db1;
    create database db2 charset='gbk';
    
    #查
    show databases; #查所有
    show create database db1; 查单个
    
    #改
    alter database db2 charset='utf8';
    
    #删
    drop database db2;
    

    针对表的增删改查(文件)

    在操作表(文件)的时候,需要指定所在的库(文件夹)
    
    查看当前所在的库名字
    select database();
    
    切换库
    use db1;
    
    #增
    create table t1(id int,name char);
    
    #查
    show tables;
    show create table t1;
    desc t;   (describe t1;的缩写)
    
    #改
    alter table t1 modify name char(16);
    
    #删
    drop table t1;
    
    
    create table db2.t1(id int);也可以用绝对路径的形式操作不同的库
    

    针对数据的增删改查(一行行数据)

    要有库 有表才能操作记录
    
    #增
    insert into t1 values(1,'jason');
    insert into t1 values(1,'jason'),(2,'egon'),(3,'tank');
    
    #查
    select * from t1; 该命令数据量特别大的时候不建议用
    select name from t1;
    
    #改
    update t1 set name ='lili' where id > 1;
    
    #删
    delete from t1 where id > 1;
    delete from t1 where name-'json';
     #将表所有的数据清空
    delete from t1;
    

      

      

     

  • 相关阅读:
    ldap集成jenkins
    自动发现实现url+响应时间监控
    5秒跳转
    String的使用
    数字货币转换为中文货币
    字符串的使用(string,StringBuffer,StringBuilder)
    修饰符
    类的继承,抽象类,接口,方法重写和重载
    类的使用
    java中的输入流(Scanner),数据类型,运算符,switch,数组的用法
  • 原文地址:https://www.cnblogs.com/acnjanna2019/p/12810602.html
Copyright © 2020-2023  润新知