• mysql 数据库基础篇


    1. 什么是数据库
    存放数据的仓库
    mysql一种DBMS
    数据库是什么,本质上就是一套C/S的socket软件
    1.1 已学习的文件操作的缺陷
    1.IO操作 效率问题
    2.多用户竞争数据
    3.网络访问
    4.用户的验证

    为什么使用mysql : 免费开源 能够支持中小企业使用

    1.2 常见数据库:
    关系型:数据之间存在某种关联关系
    oracle :
    目前最好的关系型数据库,体现在用户管理,分布式
    商业用途收费
    mysql :
    免费开源,功能支持没有oracle强 但是足以满足中小企业使用
    先后被 sun 和 oracle 收购

    marriaDB:
                mysql创始人wedebius 担心 mysql会闭源 于是另外写marriaDB
    marriaDB和mysql 使用方法一模一样
    sqlServer :
    属于微软生态链,需要和windows配合使用
    DB2 :
    IBM开发的大型关系数据库 ,收费的 通常与硬件捆绑销售

    非关系型: 数据 以key_value的形式来存储 数据存在内存中 速度快
    mongoDB :
    radis :
    memcache :



    2.数据库的相关概念
    age=1
    一个变量 无法描述清楚数据
    称之为字段

    age=18,name=Jack,genger=man
    一堆变量在一起,可以描述清楚数据
    称之为一条记录 对应着文件中的一行

    文件需要分门别类 每个文件存储不同的数据
    一个文件称之为表
    文件越来越多 得分文件加
    一个文件夹称之为库

    数据库中包含的所有内容
    字段(列)(单个数据)
    记录 (一个完整数据)
    表 (文件)
    库 (文件夹)
    DBMS 数据库管理系统
    数据库服务器
    一个库可以包含多个表 一个表可以包含多条记录 一条记录中可以有多个字段



    3.安装数据库与配置使用环境
    cmd中输入mysql的文件路径bin
    mysql _P3306 _uroot _p(后面加密码 无不输入)
    1.带界面的 傻瓜式安装 需要记住密码
    2.绿色解压版
    1. 5.7以后的版本需要先初始化 mysqld __initialize-insecure
    2. 启动需要先进入安装目录 比较麻烦 需要添加到环境变量
    打开环境变量 将mysql安装目录下的bin加入path变量
    3. 将mysqld 加到windows 的系统服务

    docker 安装 mysql
    1. 下载镜像: docker pull mysql:latest
    2. 运行启动容器: docker run -itd --name mysql-test -p 3306:3306 -v /data/dncloud/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=Diannei123 mysql
    3. 进入容器: docker exec -it mysql-test bash
    4. 连接登录 mysql: mysql -u root -p
    #登录mysql
    mysql -u root -p
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lzslov123!';
    
    #添加远程登录用户
    CREATE USER 'liaozesong'@'%' IDENTIFIED WITH mysql_native_password BY 'Lzslov123!';
    GRANT ALL PRIVILEGES ON *.* TO 'liaozesong'@'%';






    4.修改绿色版的默认密码
    知道初始密码:
    启动:需要先登陆成功tasklist |findstr mysqld
    登陆:net start mysql
    5.6修改密码:mysql>update mysql.user set password=password("admin")where user="root"and host="localhost"
    5.7中的话 mysql>update mysql.user set authentication_string=password("admin")where user="root"and host="localhost"
    停止:net stop mysql
    强制终止: taskkill | f | pid | 9990

    破解密码,当忘记密码时 无法登陆 也就不能执行update语句
    思路:启动服务器时 控制它不要加载授权表
    1. 跳过授权表登陆 mysqld __skip__grant__tables
    2. 无密码登陆服务器
    3. 在5.7中的话 mysql>update mysql.user set authentication_string=password("admin")where user="root"and host="localhost"
    4. 重启服务器



    mysqld 直接运行服务器程序
    mysqld __skip_ grant_tables 跳过授权表 用于重置密码
    tasklist|findstr mysqld taskkill /f /pid 结束服务器程序
    mysql 运行客户端程序 _u用户名 _p密码 _h主机地址 _p端口号
    mysqld__install 将mysqld注册当windows服务中 在服务中叫MySQL
    windows就是绑定了一个exe程序

    sc delete mysql 删除windows服务

    show databases : 查看数据库
    exit :退出客户端
    desc :查看表结构
    mysqld --install 创建windows服务

    1.需要先登陆成功才可以修改密码
    5.6修改密码:mysql>update mysql.user set password=password("admin")where user="root"and host="localhost"
    5.7中的话 mysql>update mysql.user set authentication_string=password("admin")where user="root"and host="localhost"

    2.方式2 不需要登陆 需要知道旧的密码
    mysqlasmin -u(root旧密码) -poot password("xxx")




    5.简单的sql语句
    针对库的相关操作
    增:create database db1(库名);创建数据库
    删:drop database db1(库名) 删除数据库
    改:alter database db1(库名) 要改的属性名称
    alter database db1(库名)DEFAULT CHARACTER SET utf8;
    alter database db1(库名)CHARSET utf8;
    注意:在mysql中 utf-8 不能带由- 需要写成utf8
    查:show database 查看所有数据库
    show create database db1(库名);查看建库的语句
    desc xx(表名)只能查看表


    命名规范:
    1.不能使用纯数字
    2.可以是数字 字母 下划线组合
    3.可以下划线开头
    4.不能是关键字 如creata
    大致和python相同
    不区分大小写



    表相关的操作
    增 :在建表时要明确数据库:
    use db1(字段名称);
    create table 表名称(字段名 类型(长度),....)
    create table dog(nikename char(10),age int)
    #创建时同时指定和数据库
    create table 库名称.表名称(字段名 类型(长度),.....)

    删 :drop table 表名;

    改 :alter table 表名称 drop |change |modify |add
    drop: 字段名称
    change: 旧的字段名称 新的字段名称 新的类型
    modify: 字段名 新的类型
    add: 字段名称 类型
    重命名表:
    raname 酒标名称 to 新表名称

    修改表的属性:
    alter table 表明 属性名 值;
    alter table dogtable DEFAULT CHARSET gbk;

    查 :show tables; 查看所有表
    desc 表名称; 查看表结构
    show create table 表名;查建表语句



    记录相关操作:
    增:inert into 表名 values(值1,值2....)
    删:delete from 表名 where 字段名称=值
    没有条件的话就删除全部数据
    改:update 表名 set 字段名=新的值 where 字段名称=值
    没有条件的话就全部修改
    查:select *from 表名;*表示通配符 查看所有字段
    select 字段名称1 ,字段名2......from 表明;






    6. 修改默认的编码:
    s 查看配置信息
    配置文件放在安装路径根目录中 就是和bin同级 名称必须叫 my.ini
    #客户端的配置
    [client]
    #mysql这个客户端的配置
    [mysql]
    user=root
    password=root
    default-character-set=utf8
    #服务器端的配置
    [mysqld]
    character-set-server=utf8












    7. 5.6与5.7的区别
    1. 5.7需要初始化
    2. 5.6游客模式 没有密码可以登陆 但是无法操作数据
    只能看到 information_schema mysql
    3. 5.7中data数据存放目录 是由初始化时决定的
    带界面的 在C:ProgramData中
    不带界面的就在安装目录中
    5.6就在安装目录中
    4. 密码存储字段名 在5.6中时用password 在5.7中时用authentication_string




    8. 数据库的引擎

    存储引擎:
    发动机:分类多种,
    汽油机:
    柴油机:价格便宜 动力强 噪音打 燃烧不完全
    电机:加速快 噪音小 续航短

    一个产品或服务的核心部分称之为引擎
    mysql 的核心功能存储数据
    musql 存储引擎就是负责存取数据的那一段代码

    show engines;查看支持的存储类型










  • 相关阅读:
    select2使用
    Jquery DataTables相关示例
    基于Cef内核的多店铺登录器(含源码)
    Navi.Soft31.产品.登录器(永久免费)
    基于JQuery EasyUI的WebMVC控件封装(含源码)
    EntityFrameWork实现部分字段获取和修改(含源码)
    基于Ado.Net的日志组件
    C#实现七牛云存储
    局域网内手机播放视频
    基于微软企业库的AOP组件(含源码)
  • 原文地址:https://www.cnblogs.com/yanhui1995/p/9982955.html
Copyright © 2020-2023  润新知