MySQL基础

MySQL

1、数据库介绍

  1. 我们本地存放的数据在文件中,和软件开发目录规范中,都是从本地读取数据

  2. 将所有的数据存放在一个第三方的公共位置,同一个如软件凡是需要操作数据,就必须去这个共享的位置操作——这个第三方的公共存放数据的位置就是数据库

  3. 数据库集群:将同一个数据库中的数据复制到不同的服务中备份

  4. MySQL数据库:C/S架构软件

    • MySQL数据库本质上就是一个基于网络通信的软件
    • 所有基于网路通信的软件,底层都是socket
    • 服务端:
      • 基于网络通信
      • 收发消息
    • 客户端
      • 基于网络通信
      • 收发消息
    • 所有的语言若想操作数据库,拿到服务端IP和port,都必须遵循一套标准的解析指令——SQL语句
  5. DBMS:数据库管理系统

    • 关系型数据库:MySQL,Oracle,DB2,SQL,servser......
      • 表结构——字段和字段类型
    • 非关系数据库:Redis,MongoDB......
      • 非关系数据库一般以key:value的形式存储

2、安装数据库

  1. 下载MySQL安装包

  2. 解压安装包

  3. 添加bin目录到系统环境变量中

  1. 以管理员身份打开cmd,输入mysqld 此时会卡住在一个位置(这是服务端)

  2. 再新建一个cmd,输入mysql 进入游客模式测试是否正常进入(这是客户端)

  1. 退出数据库客户端,直接输入quit或exit

  1. 在客户端中

    1. 直接输mysql是进入游客模块,全写: mysql -h (ip地址) -P 3306 -p 密码
    2. 输入: mysql -uroot -p 密码或者mysql -h 127.0.0.1 -P 3306 -uroot -p密码 进入管理员登录
    3. 接到远程主机上的MYSQL
      假设远程主机的IP为:218.105.110.116,用户名为root,密码为abcd123456。
      则键入以下命令:mysql -h218.105.110.116 -uroot -p abcd123456;(注:u与root之间可以不用加空格,其它也一样)。
  2. 查看操作系统中是否已经启动mysql服务端

    1. 查看:在cmd中直接输入tasklist |findstr "mysql"
    2. 杀死mysqld进程:在紧接着后面cmd直接输入taskkill /F /PID pid号(此处pid号为上一步查看的pid号)
  3. 每次都需要打开服务端再去开客户端太过麻烦,我们需要将服务端制作系统服务

    1. 必须将已启动的mysqld服务端cmd关闭
    2. 杀死已经启动过的mysqld进程(pid)(也可以直接输入net stop mysql 关闭服务端)
    3. 管理员权限下在cmd中输入mysql --install ——>安装mysqld系统服务
    4. 管理员权限下在cmd中输入net start mysql 打开服务端
  4. 修改密码

    1. 客户端默认没有密码的情况下,设置密码
      • cmd>>>: mysqladmin -uroot password 新密码
    2. 有密码的情况下修改密码
      • cmd>>>: mysqladmin -uroot -p原密码 password修改的密码
  5. 破解密码

    1. 关闭服务端(管理员权限打开cmd,输入net stop mysql
    2. 管理员权限下,cmd输入,mysqld --skip-grant-tables
    3. 重新打开一个cmd进入客户端模式:
      1. 进入游客模式,直接输入mysql
      2. 再输入update mysql.user set password=password('修改的新密码') where user="root";(记得加分号)
    4. 重新启动服务端
      1. 管理员权限打开cmd
      2. 先kill掉服务端的进程(输入net stop mysql
      3. 再打开服务端(输入net start mysql
  6. 设置配置文件(客户端输入\s查看配置)

    1. 找到mysql目录,D:\mysql-5.6.40-winx64

    2. 创建一个名为 “my.ini” 的文件,这个是mysql的配置文件

    3. 在文件中粘贴以下内容

      [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
      
    4. 重新启动mysql服务

3、数据库基本操作(数据库命令后都要加分号)

  1. 库的操作——类似于文件夹

    1. 增:
      • 语法:create database 库名;
      • 例:create database db1;
    2. 查:
      • 语法:show databases; # 查看所有的库
      • 语法:show create database 库名; # 查看库名中的信息
      • 例:show create database db1;
    3. 改:
      • 语法:alter database 库名 charset=“字符编码类型”;
      • 例:alter database db1 charset=“utf8”;(注意数据库中utf8不能加-)
    4. 删:
      • 语法:drop database 库名;
      • 例:drop database db1;
  2. 表的操作——>类似于文件

    操作表前需要切换到指定的库

    语法:use 库名;

    例:use db1;

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

    1. 增:

      varchar与char 都是字符串类型,varchar(指定长度)

      • 语法:create table 表名(字段名 字段类型);
      • 例:create table text1(name varchar(20), age int(11));
    2. 查:

      • 查看当前库中所有的表:show tables;
      • 查看表结构:desc text1;
    3. 改:

      • 语法:alter table 表名 modify 字段名 字段类型;
      • 例:alter table text1 modify name varchar(28);
    4. 删:

      • 语法:drop table 表名;
      • drop table text1;
  3. 记录的操作——类似于文件中的一行行数据

    1. 增:

      • 语法:insert into 表名 values('字段类型的数据1',字段类型的数据2);
      • 语法:insert into 表名(字段名) values(字段名对应的值);
      • 例:insert into text1 values('shen', 18); #插入一条
      • 例:insert into text1(name,age) values('shen', 18);
      • 例:insert into text1 values('shen', 18),('vikey', 20); # 插入两条
    2. 查:

      *:指的是所有

      • 语法:select * from 表名; # 查看表中所有的数据
      • 例:select * from text1;
      • 语法:select * from 表名 where 条件; # 查看表中所有的条件成立时的条件数据
      • 例:select * from text1 where name=’shen‘
      • 语法:select 字段A from 表名 where 条件; # 查看条件成立时字段A的数据
      • 例:select age form text1 where name=’shen‘;
      • 语法:select 字段A from 表名; # 查看所有的字段A
      • 例:select name from text1;
    3. 改:

      • 语法:update 表名 set 字段名=字段值 where 条件; # 若条件成立,则修改成功
      • 例:update text1 set name='tate' where age=18;
    4. 删:

      • 语法:delete from 表名;# 清空表记录,不提交,可恢复,可以用where条件删除
      • 例:delete from text1;
      • 例:delete from text1 where id=1;
      • 语法:truncate table 表名; # 删除不可恢复,不可用where条件删除
      • 例:truncate table text1;
posted @ 2019-12-10 21:36  Mr沈  阅读(416)  评论(0编辑  收藏  举报