zoukankan      html  css  js  c++  java
  • MySQL数据库 介绍,安装,基本操作

    - 数据库介绍:

    1.随意存放在一个文件中的数据,数据的格式千差万别
      tank|123 jason:123 sean~123

    2.软件开发目录规范
      - Project:
      - conf
      - bin
      - core
      - db: 存放一个个的文件

      1、2都是从本地读取的数据。

    3.将所有数据存放到一个第三方的公共位置,同一个软件凡是需要操作数据的,就必须去这个共享的位置操作。
      - 第三方的公共位置(数据库)

      - 数据库集群: 将同一个数据库中的数据,复制到不同的服务器中。

    4. MySQL数据: C ---> S架构软件
      1) mysql数据库本质上就是一个基于网络通信的软件。
      2) 所有基于网络通信的软件,底层都是socket。

      - 服务端:
        - 基于网络通信
        - 收发消息

      - 客户端:
        - 基于网络通信
        - 收发消息

      - 所有语言若想操作数据库,拿到服务端ip和port,都必须遵循一套标准的解析指令 ---》 SQL语句

    ***** 学习SQL语句

    - DBMS: 数据库管理系统

      - 关系型数据库: MySQL、Oracle、DB2、sql server、....
        - 1) 表结构
          - 需要哪些字段
          - 字段是什么类型

        - 2) 字段与字段类型
          - name ---> 'tank' ----> 字符串
          - age ---> 17 ---> 整型

      - 非关系型数据库: redis、mongodb...
        - 非关系型数据库一般以 key:value的形式存储
        {
          'name': 'tank'
        }

    - 安装数据库
    - 1.下载mysql安装包
    - 2.解压安装包放在D:中
    - 3.添加系统环境变量  D:mysql-5.6.40-winx64in
    - 4.以管理员身份打开CMD,输入mysqld启动服务端,此时会卡住
      - bin目录下的: mysqld.exe

    - 5.在新建一个cmd,mysql客户端连接服务端,输入mysql -h 127.0.0.1 -P 3306 -p 密码     (3306是MySQL默认端口号)
      - mysql初始化时无密码,可以进入游客模式,功能会很少
      - 无密码直接进入 ---》 不需要“-p 密码”
      - bin目录下的: mysql.exe

      全写: mysql -h 127.0.0.1 -P 3306 -p 密码   
      简写: mysql -uroot -p 密码    (以管理员权限打开)

    - 6.退出数据库客户端
      - exit;
      - quit;

    注意: SQL语句末尾必须加 “;” 号。


    - 查看操作系统中是否已经启动mysqld 服务端
      - tasklist | findstr "mysqld"

    - 杀死mysqld进程
      - taskkill /F /PID pid号

    - *****做服务端操作时,必须先以管理员身份打开


    - 数据库的命令:
      - 查看所有数据库:
        - show databases;


    - 制作系统服务(不用每次都打开mysqld服务端,在管理->服务->MySQL中可以设为手动,节省资源)
      - 1.必须将已启动的服务端mysqld关掉
      - 2.删掉已经启动过的mysqld的进程
      - 3.输入 mysqld --install ----> 安装mysqld系统服务
      - 4.输入 net start mysql
      - 5.输入 net stop mysql

    - mysql -u 登录mysql用户名(root) -p 密码
      - 默认自带 root 超级用户, 没有密码
      - 管理员登录
        - mysql -uroot 回车进入

      - 游客登录
        - mysql 回车


    - 修改密码:
    - 默认没有密码的情况下,设置密码
      - cmd>>>: mysqladmin -uroot password 123

    - 有密码的情况下,修改密码
      - cmd>>>: mysqladmin -uroot -p原密码 password修改的密码
      - cmd>>>: mysqladmin -uroot -p123456 password 123

    - 破解密码: 当密码忘记时采用
      - 1.关闭服务端
      - 2.跳过权限启动服务端
        - cmd>>>: mysqld --skip-grant-tables

      - 3.客户端进入游客模式:
        - cmd>>>: mysql

        - update mysql库.user表名 set 字段password=字段password('字段值') where 条件(若条件成立,则修改)user="root";
        - cmd>>>: update mysql.user set password=password('123456') where user="root";

      - 4.重新启动服务端,不要跳过权限认证

        - 先kill掉跳过权限认证启动的服务端进程
        - 再手动去开服服务中的mysql服务即可

    - 设置配置文件:
    - 1.先在mysql目录下 --》 D:mysql-5.6.40-winx64

      s 查配置文件

    - 2.创建一个名为 “my.ini” 的文件,以下是mysql的配置文件(改成utf8)

    - [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    
    # 这个是用python软件连接的客户端
    [client]
    default-character-set=utf8
    
    # mysql软件的客户端
    [mysql]
    # 可写,可不写这样可以不需要用户名与密码直接登录mysql
    # user='root'
    # password=123
    
    # 设置默认的字符编码
    default-character-set=utf8

     

    - 3.重启mysql服务,即修改成功!

    - 数据库基本操作:

    - 库的操作 ---> 类似于文件夹
    - 增:
      语法: create database 库名;
      - create database db1;

      - create database db2 charset = 'gbk';   (创建字符为GBK编码的库)

    - 查
      语法: show databases; # 查看所有库
      show create database db1; # 查看db1库中的信息

    - 改
      语法: alter database 库名 charset="字符编码类型";
      - alter database db1 charset="utf8";(MySQL只认utf8,不认utf-8)

    - 删
      语法: drop database db1;

    - 表的操作 ---> 类似于文件
    - 操作表前,需要先切换到指定库
      语法: use 库名;
      - use db1;

      查看当前所在的库: select database()

    - 增
      varchar与char 都是字符串类型;
      varchar(20)
      语法: create table 表名(字段名 字段类型);
      create table user_info(name varchar(20), age int);

    - 查
      show tables; # 查看当前库中所有的表
      desc user_info; # 查看表结构

    - 改
      语法: alter table 表名 modify name varchar(28);
      - alter table user_info modify name varchar(28);

    - 删
      语法: drop table 表名;
      - create table test(id int);
      - drop table test;

    - 记录 的操作 ---> 类似于文件中的一行行数据
    - 增:
      语法: insert into 表名 values('字段类型的数据1', 字段类型的数据1);
      # 插入一条
        - insert into user_info values('tank', 17);

        insert into user4(name) values('tank');  (根据字段添加,其他字段为null)

      # 插入多条
        - insert into user_info values('jason', 71), ('sean', 78);

        insert into user2(id, name) values(1, 'tank'), (2, 'sean');  (根据字段添加,其他字段为null)

    - 查:
      *: 指的是所有
        语法: select * from 表名; # 查看表中所有的数据
        - select * from user_info;

      # 查看name 字段为 tank 的记录
        - select * from 表名 where 条件; # 条件成立则查看成功!
        - select * from user_info where name="tank";

      # 查看name 字段为 tank 的age字段
        - select age from user_info where name="tank";

      # 查看所有的名字:
        - select name from user_info;

    - 改
      语法: update 表名 set 字段名=字段值 where 条件判断; # 若条件成立,则修改成功!

      # 修改age为17的记录中name属性为 handsome
        - update user_info set name='handsome' where age=17;

      # 修改age>16的记录 中name属性为 d_sb
        - update user_info set name='d_sb' where age>16;

    - 删

      语法: delete from 表名;
        # 清空表记录,不提交,可恢复。
        - delete from user_info;

      语法: truncate table 表名;
        # 删除,不可恢复
        - truncate table user_info;

  • 相关阅读:
    Windows Service开发介绍
    解决Vuex持久化插件-在F5刷新页面后数据不见的问题
    selenium+python 安装使用
    字符串拆分姓名、电话、省市区逻辑
    常用正则表达式大全——包括校验数字、字符、特殊密码过滤
    uni-app 地图初用 map
    前端常见手写笔试题
    数组去重和排序
    js获取当前时间年份,处理年月日
    js循环匹配组合成新对象或js循环组合新数据
  • 原文地址:https://www.cnblogs.com/ludingchao/p/12018307.html
Copyright © 2011-2022 走看看