- 数据库介绍:

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-winx64\bin
- 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;

MySQL数据库 介绍,安装,基本操作的更多相关文章

  1. MySQL数据库之安装,基本操作

    一.基础部分 1.数据库是什么 之前所学,数据要永久保留,比如用户注册的用户信息,都是保存于文件,而文件只能存在于某一台机器上. 如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序所有的组件 ...

  2. Mysql数据库介绍、安装和配置文件

    Mysql数据库介绍.安装和配置文件 MySQL数据库介绍 mysql是开源关系型数据库,遵循GPL协议. mysql的特点是性能卓越且服务稳定,开源,无版本限制,成本低,单进程多线程,多用户,基于C ...

  3. CentOS6.4/6.7下Mysql数据库的安装与配置(转载)

    通过RPM方式 给centos  安装mysql  最好有光盘,呵呵,网络也可以下载rpm安装包,不过文件较大. 1 挂载光盘 mount /dev/cdrom /mnt/cdrom/mount: b ...

  4. [转] Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    from:  http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得 ...

  5. Linux学习之CentOS--CentOS6.4下Mysql数据库的安装与配置【转】

      如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--C ...

  6. Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    原文:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...

  7. Linux学习之CentOS6下Mysql数据库的安装与配置

    转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...

  8. Linux CentOS6.4下Mysql数据库的安装与配置

    一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库,咱 ...

  9. CentOS6.5下Mysql数据库的安装与配置

    一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库,咱 ...

随机推荐

  1. MongoDB概念认识(四)

    1. database 一个mongodb中可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. MongoDB的单个实例可以容纳多个独立的数 ...

  2. 20191031 牛客网CSP-S Round2019-2

    花了 \(50min\) 打了 \(130\) 分的暴力... T2想到正解之后开始 VP CF了...

  3. 第十 构建Web内容的技术

    第十章 构建Web内容的技术 一.HTML HTML(HyperText Markup Language,超文本标记语言)是为了发送Web 上的超文本(Hypertext)而开发的标记语言.超文本是一 ...

  4. 手把手教你使用gogs搭建git私有仓库

    本来想在 Github 上建一个私仓,但是发现只能设置 3 个贡献者. 国内的码云也只能设置 5 个. 无意间看到了使用 gogs 可以搭建私服,正好手头有空闲的服务器,于是开干! https://g ...

  5. 快速缓存刷新CDN节点的方法

    缓存刷新方式有 URL 刷新.目录刷新和 URL 预热.URL 刷新是以文件为单位进行缓存刷新.目录刷新是以目录为单位,将目录下的所有文件进行缓存刷新.URL 预热是以文件为单位进行资源预热. 刷新后 ...

  6. HTML+CSS基础 并集选择器

    并集选择器.a,.b

  7. axios 源码解析(下) 拦截器的详解

    axios的除了初始化配置外,其它有用的应该就是拦截器了,拦截器分为请求拦截器和响应拦截器两种: 请求拦截器    ;在请求发送前进行一些操作,例如在每个请求体里加上token,统一做了处理如果以后要 ...

  8. Kafka关键参数设置

    生产环境中使用Kafka,参数调优非常重要,而Kafka参数众多,我们的java的Configuration代码中,经常设置的参数如下: Properties props = new Properti ...

  9. Expression Tree上手指南 (一)【转】

    大家可能都知道Expression Tree是.NET 3.5引入的新增功能.不少朋友们已经听说过这一特性,但还没来得及了解.看看博客园里的老赵等诸多牛人,将Expression Tree玩得眼花缭乱 ...

  10. 『字符合并 区间dp 状压dp』

    字符合并 Description 有一个长度为 n 的 01 串,你可以每次将相邻的 k 个字符合并,得到一个新的字符并获得一定分数.得到的新字符和分数由这 k 个字符确定.你需要求出你能获得的最大分 ...