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
- 数据库 database : 数据仓库或者集合
- 表 table : 数据 保存在表内, 同时, 保存在同一个表内的数据有着相同的数据格式
- 行 : 记录数据
- 列 : 规定数据的格式
- 记录: 一行数据
- 字段: 一列数据
- 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
- 创建数据库:
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 [修改指令]
- 数据库改名: 备份一个数据库, 创建一个新的, 将旧数据库中的文件拷贝进去, 删除原有数据库即可。(在windows 中可以直接修改目录名字)
ps: 在windows 中, 创建db 完毕之后, 会在mysql 的data 目录中形成一个目录, 目录的名字就是数据库的名字, 目录下面放着一个文件用来保存数据库的选项信息 db.opt.
linux 中其实也是一样的。
3.3 表操作 DDL
- 数据库是表的容器, 表必须从属与某个数据库。
表的创建: create table tbl_name (列结构)[表选项];
- 一般来说, 我们需要先分析需要保存的实体的数据 所拥有的属性, 确定属性所应当的保存方式。
- 列定义 : 列 名 列的数据类型[ 列属性约束 ]
指定所用的数据库:
- 使用 库名 . 表名 来显示指定数据库
- use db_name; 指定默认数据库
查看表操作: show tables [options];
- 使用 /* xxx */ 表示注释
- 对于多个逻辑上相同名字的表名, 可以通过添加表名前缀来区分它们
- show tables [like ‘pattern’]
- show tables like ‘exam_%’, 这里% 在 mysql 中表示通配符,任意字符 任意个数的组合。
显示表的创建信息: show create table tbl_name;
- 当有很多数据显示的时候, 可以采用 \G 作为结束符, 可以图形化显示信息
- 查看表的结构, 描述表结构: Describe tbl_name;
或者 desc tbl_name; - 显然, 一个表也对应文件目录下的一个文件
- 删除表: drop table [if exists] tbl_name;
- 修改表
- 表名: rename table old_name to new_name, old2 to new2, …; 支持多个表同时做修改操作, 支持跨数据库重命名(移动)
- 列定义 : alter table tbl_name [ADD | DROP | MODIFY|CHANGE] 增加, 删除, 修改, 重命名
- 表选项 : alter table tbl_name [新表选项]
- 表名: rename table old_name to new_name, old2 to new2, …; 支持多个表同时做修改操作, 支持跨数据库重命名(移动)
3.4 数据操作 DML
- 创建(插入数据):
insert into tbl_name (字段列表) values (值列表); - 获取数据
select 字段列表 from 表名 查询条件; - NULL 在 mysql 中也是一个数据, 也会占用空间
- 删除数据
delete from 表名 条件 - 修改数据:
update 表名 set 字段 = 新值, … ; - CRUD (create, retrieve, update, delete)增删查改
- 数据库mysql学习笔记1
- MySQL 数据库学习笔记1
- MySQL 数据库学习笔记1
- MYSQL数据库学习笔记1
- mysql数据库学习笔记
- MYSQL数据库学习笔记
- 数据库MYSQL学习笔记
- MySQL数据库学习笔记
- Mysql学习笔记<1>数据库SQL
- MYSQL数据库 - 学习笔记1 - 数据库基本操作
- MySQL数据库学习笔记[转]
- MySQL数据库程序设计--学习笔记
- mysql学习笔记-----数据库语言
- mysql数据库优化 学习笔记
- Mysql学习笔记-数据库事务
- mysql数据库基础学习笔记
- MySql数据库学习笔记-数据类型
- MySQL数据库优化学习笔记
- DevExpress控件使用方法:第一篇 gridControl详解
- iOS之SQLite基本使用
- 《剑指offer》-包含min函数的栈
- 一位算法工程师对自己工作的反思,写得挺实在的
- OC正式协议和非正式协议
- MySQL 数据库学习笔记1
- 解决Setting property 'source' to 'org.eclipse.jst.jee.server的问题
- HBase简介及入门
- LeetCode:Range Sum Query - Immutable
- 设置静态IP
- 第十一周项目1.3— 点 圆 圆柱类族的设计
- Memcache知识点梳理
- 链栈的C语言实现
- coderforces 22C 构图水题