MySQL 数据库学习笔记1

1. 引言

最近开始学习mysql, 到昨天为止, 才好不容易把 lnmpa 环境给配置好, 在这里, 把学习mysql 的一些知识点做一些 记录, 方便自己以后查阅。

2. 概述

2.1 数据库的概念

简单的来讲, 数据库就是存储数据的仓库,我们学习时候记录的笔记, 做的便签, 备忘录 都可以看成是数据库的一种表现形式。
它主要分为两个部分: 数据的集合 + 数据的管理

2.2 数据库系统 DBS

从软件的角度来讲:
数据库系统 DBS = 数据库管理系统 DBMS + 数据库 DB

2.3 数据库的定义

对大量信息进行管理的高效的解决方案, 按照数据结构来组织, 存储, 管理数据的库
典型的数据库有:
关系型: Oracle , IBM DB2, MS SQL server, MySQL ===> 二维表格形式存储
非关系型: Nosql, mongoDB, MemBase =======> 键值对形式存储
对象型数据库 ORM, 只是停留在概念上

2.4 关系型数据库系统

关系型数据库系统是建立在关系模型上面的数据系统。
那么什么是关系模型呢?
关系模型主要有两个特点:
1. 数据结构可以规定, 同类数据, 结构一致, 通常存储为 二维表格。
2. 数据之间的关系可以设置, 表现为实体之间的联系

ex. 学籍管理系统, 学生是一个实体, 老师也是一个实体, 他们之间有相互关联, 就可以使用 关系模型来表示他。

2.5 关系型数据库的典型概念 RDBMS

  1. 数据库 database : 数据仓库或者集合
  2. 表 table : 数据 保存在表内, 同时, 保存在同一个表内的数据有着相同的数据格式
  3. 行 : 记录数据
  4. 列 : 规定数据的格式
  5. 记录: 一行数据
  6. 字段: 一列数据
  7. SQL : 结构化查询语言, DBMS 用来管理 数据库 DB 所使用的语言 (建立在关系模型的基础之上发展起来的)

2.6 MySQL

mysql 主要用于网站的数据存储, 功能强大, 可以满足web 应用的需求, 成本低, 开源
他是基于 C / S 架构模型的
MySQL 数据库学习笔记1_第1张图片

因而, 安装mysql 的时候, 理论上需要安装 3 个软件: 客户端, 服务端, 数据库。
他的默认监听端口为 3306
MySQL 数据库学习笔记1_第2张图片

mysqld 是服务器端, 而mysql 是客户端。
windows 中, 管理mysql 服务可以有3 种方式:
1. windows 服务管理, service.msc
2. windows 命令行服务管理, net start xxx, net stop xxx
3. 直接使用 mysqld 运行服务, mysqld –defaults-file = “xxx”

当然, centos 中
可以使用 service mysqld start 即可。

3. 数据库操作

3.1 SQL 结构化查询语言分类

针对操作对象的不同, 可以分为不同的语言:
1. 针对数据操作, 数据操作管理语言 DML (包含 DQL 数据查询语言)
2. 针对保存数据的格式进行定义, 数据定义语言 DDL
3. 针对数据库软件服务控制, 数据库控制语言 DCL

3.2 库操作 DDL

  1. 创建数据库:
    create database db_name [option];

特别需要注意的是: 特殊形式的名字需要使用反引号标记出来
我们可以使用 show create database db_name; 查看数据库的创建语法。
MySQL 数据库学习笔记1_第3张图片
2. 设置字符格式: set names utf8;
3. 数据库查询: show databases;
show create database db_name;
4. 数据库删除: drop database db_name;

5. 修改信息: alter database db_name [修改指令]
MySQL 数据库学习笔记1_第4张图片

  1. 数据库改名: 备份一个数据库, 创建一个新的, 将旧数据库中的文件拷贝进去, 删除原有数据库即可。(在windows 中可以直接修改目录名字)

ps: 在windows 中, 创建db 完毕之后, 会在mysql 的data 目录中形成一个目录, 目录的名字就是数据库的名字, 目录下面放着一个文件用来保存数据库的选项信息 db.opt.
linux 中其实也是一样的。
MySQL 数据库学习笔记1_第5张图片

3.3 表操作 DDL

  1. 数据库是表的容器, 表必须从属与某个数据库。
  2. 表的创建: create table tbl_name (列结构)[表选项];

    • 一般来说, 我们需要先分析需要保存的实体的数据 所拥有的属性, 确定属性所应当的保存方式。
    • 列定义 : 列 名 列的数据类型[ 列属性约束 ]
  3. 指定所用的数据库:

    • 使用 库名 . 表名 来显示指定数据库
    • use db_name; 指定默认数据库
  4. 查看表操作: show tables [options];

    • 使用 /* xxx */ 表示注释
    • 对于多个逻辑上相同名字的表名, 可以通过添加表名前缀来区分它们
    • show tables [like ‘pattern’]
    • show tables like ‘exam_%’, 这里% 在 mysql 中表示通配符,任意字符 任意个数的组合。
  5. 显示表的创建信息: show create table tbl_name;

  6. 当有很多数据显示的时候, 可以采用 \G 作为结束符, 可以图形化显示信息
  7. 查看表的结构, 描述表结构: Describe tbl_name;
    或者 desc tbl_name;
  8. 显然, 一个表也对应文件目录下的一个文件
  9. 删除表: drop table [if exists] tbl_name;
    MySQL 数据库学习笔记1_第6张图片
  10. 修改表
    • 表名: rename table old_name to new_name, old2 to new2, …; 支持多个表同时做修改操作, 支持跨数据库重命名(移动)
    • 列定义 : alter table tbl_name [ADD | DROP | MODIFY|CHANGE] 增加, 删除, 修改, 重命名
    • 表选项 : alter table tbl_name [新表选项]

3.4 数据操作 DML

  1. 创建(插入数据):
    insert into tbl_name (字段列表) values (值列表);
  2. 获取数据
    select 字段列表 from 表名 查询条件;
  3. NULL 在 mysql 中也是一个数据, 也会占用空间
  4. 删除数据
    delete from 表名 条件
  5. 修改数据:
    update 表名 set 字段 = 新值, … ;
    MySQL 数据库学习笔记1_第7张图片
  6. CRUD (create, retrieve, update, delete)增删查改

你可能感兴趣的:(数据库,mysql)