MySQL 数据库学习笔记1

来源:互联网 发布:openwrt 网络打印机 编辑:程序博客网 时间:2024/05/14 22:00
 

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 的时候, 理论上需要安装 3 个软件: 客户端, 服务端, 数据库。 
他的默认监听端口为 3306 
这里写图片描述

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; 查看数据库的创建语法。 
这里写图片描述 
2. 设置字符格式: set names utf8; 
3. 数据库查询: show databases; 
show create database db_name; 
4. 数据库删除: drop database db_name; 
这里写图片描述 
5. 修改信息: alter database db_name [修改指令] 
这里写图片描述

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

ps: 在windows 中, 创建db 完毕之后, 会在mysql 的data 目录中形成一个目录, 目录的名字就是数据库的名字, 目录下面放着一个文件用来保存数据库的选项信息 db.opt. 
linux 中其实也是一样的。 
这里写图片描述

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; 
    这里写图片描述
  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 字段 = 新值, … ; 
    这里写图片描述
  6. CRUD (create, retrieve, update, delete)增删查改
0 0