zoukankan      html  css  js  c++  java
  • 数据库概念

    数据库概念

    • 1.随意的存到了一个文件中 数据格式也是千差万别的
    • 2.软件开发目录规范
      • 规定了数据存放的位置
      • PS:数据都是保存在本地的
    • 3.将保存数据的部分 存到一个公共的地方 所有的用户涉及到数据相关 都必须来这个公共地方查找

    数据库之MySQL

    • 本质上就是一款基于网络通信的应用软件
    • 任何基于网络通信的应用软件,底层都是用socket的

    服务端

    • 基于socket通信
    • 收发消息
    • SQL语句(是一个公共的标准)

    客户端

    • 基于socket通信
    • 收发消息
    • SQL语句

    PS:MySQL不单单支持MySQL的客户端来操作,也支持其他编程语言直接操作(python java c++ php语法都不一样)


    DBMS:数据库管理系统

    关系型数据库(MySQL,oracle,sqlite,db2,sqlServer)

    • 数据与数据之间可以有关联与限制的
    • 关系型数据库通常都是表结构,也就意味着你在创建那个关系型数据库时
      • 第一步就是确定表结构
        • 字段有特定的类型
        • 存名字用字符串
        • 存密码用数字
        • 存生日用日期

    非关系型数据库(redis(缓存型数据库),mongodb(文档型数据库,非常接近关系型数据库的非关系型数据库),memcache(缓存型数据库))

    • 通常都是以k,v键值的形式存储数据
    • MySQL其实可以把它看成一款支持远程操作文件的软件

    >>> 文件夹

    >>> 文件

    记录 >>> 文件内一行行的数据叫做一条条的记录

    表头 >>> 就是表格的第一行数据

    字段 >>> 就是字段名+字段类型


    安装MySQL

    8.0好用点,推荐5.6,别下载最新版本的软件就行

    下载解压,查看文件目录

    • 服务端 -mysqld
    • 客户端 -mysql

    启动mysql(服务端与客户端)

    • 1.切换bin目录下
    • 2.执行mysqld或者mysql -h 127.0.0.1 -P 3306 -uroot -p

    PS:

    • 做前期MySQL配置时,终端建议你用管理员身份运行,win+r启动的是普通用户,右键以管理员身份运行
    • mysql在初始登录时是没有密码的,直接回车即可
    • mysql中的SQL语句是以分号' ; '结束的,不敲分号,说明你没有输入完,客户端还会让你继续输入

    在登录客户端时,直接输入mysql,则会进入访客模式,软件只会让你用测试库,所用格功能也很少

    • 客户端登陆 >>> mysql -h 127.0.0.1 -P 3306 -uroot -p
    • 客户端登陆(简写) >>> mysql -uroot -p
    • 客户端退出登录 >>> exit;或者quit;
    • 查看所有的数据库 >>> show databases;
    • 查看某个进程 >>> tasklist |findstr mysqld
    • 终止进程(依据PID码选择) >>> taskkill /F /PID

    制作环境变量

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

    注意:配置完之后一定要重新启动mysql服务端以及cmd终端

    将mysqld制作成系统服务

    • 制作系统服务,所用cmd终端一定要用管理员身份 >>> mysqld --install

    修改密码

    • 没有密码的情况下 >>> mysqladmin -uroot -p password 123
    • 有密码的情况下 >>> mysqladmin -uroot -p123 password 123456
    • 当命令输入错误时可以用命令来取消前面的命令cancel >>> c

    破解密码

    前提:

    • 先将已启动的服务端停止
    • tasklist |findstr mysqld
    • taskkill /F /PID XXXX

    具体步骤:

    • 1.跳过用户名和密码的验证功能,启动服务端
      • 重新启动服务端,跳过授权表 >>> mysqld --skip-grant-tables
    • 2.修改管理员用户对应的密码
      • update mysql.user(服务端所有用户信息的表) set password=password(123) where user='root' and host='localhost';
      • 显示Query OK >>> 请求成功
    • 3.关闭当前服务端,重新以校验用户名密码的方式启动
    • 4.正常以用户名密码的方式,连接mysql服务端

    配置文件

    • 查看mysql服务端的简单配置 >>> s
    • latinl和gbk编码,解决服务端编码不一致的问题
    • 通常情况下配置文件的后缀名都是ini结尾
    • mysql自带的配置文件不能修改,但是我们可以新建一个配置文件my.ini,且mysql服务端在启动时就会自动加载这个my.ini配置文件内的配置
    • 修改完配置文件后需要先将服务端停止,再重新启动服务端才能生效

    my.ini配置文件内容(解决服务端编码不一致的问题,而且可以从客户端直接以管理员身份登录)

    [mysqld]
    character-set-server=utf-8
    collation-server=utf-8_general_ci
    [client]
    default-character-set=utf-8
    [mysql]
    user='root'
    password=123
    default-charactre-set=utf-8

    注意:修改了配置文件一定要重新启动!!!


    数据库的基本操作

    增删改查

    库(文件夹)

    增
    
    create databases db1;
    
    查
    
    show databases;查所有
    show create databases db1;查单个
    
    改
    
    alter databases db1 charset='gbk';修改编码
    
    删
    
    drop databases db1;删库

     

    表(field就是字段的意思;type就是字段类型的意思)

    # 在创建表的时候,需要先指定库
    # 指定库: user 库名
    # 查看当前所在的库: select databases();
    
    增
    
    create table userinfo(id int,name char(4));
    
    查
    
    show tables; 查看某个库下面的所有的表
    show created table userinfo;
    desc userinfo;等价于describle userinfo;
    
    改
    
    alter table userinfo modify name char(32);
    
    删
    
    drop table userinfo;

    记录

    # 先创建一个库或者指定一个已经存在的库,切换到改库下创建表,然后再操作记录
    
    create databases db1;
    create table userinfo(id int,name char(32),password int);
    
    增
    
    insert into userinfo values(1,'jason',123); 插入单条数据
    insert into userinfo values(1,'jason',123),(2,'egon',123),(3,'tank',123); 插入多条数据
    
    查
    
    select * from userinfo; 查看表中所有内容
    select name from userinfo; 查用户表中所有用户的用户名
    select id,name from userinfo where id=1 or name=tank; 根据索引查看详细内容
    
    改
    
    update userinfo set name='kevin' where id=1; 修改数据的一个字段
    update userinfo set name='tank', password=666 where id=1; 修改数据的多个字段
    
    删
    
    delete from userinfo where id=1; 指定删除符合条件的数据
    delete from userinfo; 将表中的数据全部删除
  • 相关阅读:
    【转】TCP协议的无消息边界问题
    【转】Log4net用法
    【转】微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
    关于Asp.Net MVC 中 UpdateModel 的未能更新***模型的 解决方案!
    批准加强军队信息安全工作意见
    iOS--开发从入门到精通
    iOS-开发者账号与证书
    iOS--高级技术
    iOS-----App闪退,程序崩溃---解决方案
    iOS-运行时机制
  • 原文地址:https://www.cnblogs.com/zhukaijian/p/11364859.html
Copyright © 2011-2022 走看看