Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MySQL_1 初识MySQL数据库 #20

Open
Qingquan-Li opened this issue Jan 13, 2017 · 0 comments
Open

MySQL_1 初识MySQL数据库 #20

Qingquan-Li opened this issue Jan 13, 2017 · 0 comments
Labels

Comments

@Qingquan-Li
Copy link
Owner

Qingquan-Li commented Jan 13, 2017

MySQL 数据库学习重点:
掌握 MySQL的在Windows 系统中的安装方法
熟练使用例如 SQLyog 的数据库管理工具
学会创建 MySQL 的数据库、数据库表
掌握对数据的增、删、查、改操作
了解和熟悉 MySQL 的事务处理
了解数据库的备份和恢复方法


本篇博客(第一篇)重点:

了解 MySQL 数据库
安装 MySQL
简单操作 MySQL 及其可视化工具
了解结构化查询语言(SQL)


什么是数据库?

数据库(Database 简称DB)是按照数据结构来组织、存储和管理数据的仓库。

关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:

  1. 数据以表格的形式出现
  2. 每行为各种记录名称
  3. 每列为记录名称所对应的数据域
  4. 许多的行和列组成一张表单
  5. 若干的表单组成 database

RDBMS 术语:

  • 数据库: 数据库是一些关联表的集合。.
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • 行: 一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余: 存储两倍数据,冗余可以使系统速度更快。
  • 主键: 主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键: 外键用于关联两个表。
  • 复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引: 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。


MySQL简介

  • MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
  • Mysql 是开源的,所以你不需要支付额外的费用。
  • Mysql 小巧、却功能齐全强大。可适用于中小型甚至大型网站应用。
  • Mysql 可运行于 Windows 或 Linux 操作系统,并且支持多种语言,包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。


MySQL 安装(Windows)

MySQL 下载地址:http://dev.mysql.com/downloads/

MSI 版 MySQL 安装及配置注意事项:

  1. 数据目录建议不要在系统盘,以免卸载时删除数据包。
  2. 软件安装完成后,勾选 “Configure the Mysql Server now” 启用 MySQL 配置向导,不用手动配置繁琐的 my.ini 配置文件。
  3. InnoDB Tablespace Setting,为 InnoDB 数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏。当然,对数据库做个备份就没问题了。
  4. 端口设置默认 3306 (不建议修改)。
    建议勾选 “Enable Strict Mode ”(启用标准模式),这样 MySQL 就不会允许细小的语法错误。可以降低有害数据进入数据库的可能性。
    还有一个关于防火墙的设置 “Add firewall exception ……” 需要选中,将 MySQL 服务的监听端口加为 Windows 防火墙例外,避免防火墙阻断。
  5. 数据库语言编码设置 编码设置 utf8(避免中文乱码)。
  6. 建议勾选 “Include Bin Directory in Windows PATH”,将 MySQL 的 bin 目录加入到 Windows PATH (加入后,就可以直接使用 bin 下的文件,而不用指出目录名,比如连接:mysql -uusername -ppassword; 就可以了,不用指出 mysql.exe 的完整地址: E:\MySQL\bin\mysql.exe -uroot -ppassword; ,很方便)。

安装或配置出错时,个人经验分享:

  1. 卸载时,建议使用 MySQL 原来的安装程序卸载(原来的安装包不仅可以安装,还有修复、卸载功能),避免用系统卸载程序卸载导致注册表清理不干净。
  2. 安装时,询问是否要修改默认root 用户的密码,如果是重装 MySQL,并且之前已经设置了密码,在这里更改密码可能会出错,请留空,并将 “Modify Security Settings” 前面的勾去掉,安装配置完成后另行修改密码。
  3. 之前安装过 MySQL 卸载后再次安装时失败,可以尝试改名,例如把 MySQL 改为 MySQL5 再安装就可以成功。此时在命令行打开服务就需要写更改之后的名称,例如启动 MySQL 的命令为 net start mysql5
  4. 要修改 MySQL 配置参数,可在安装路径下找到 “my.ini” 配置文件,修改相关配置参数。


常用的命令行(管理员:命令提示符)操作数据库

  1. 打开 / 关闭 MySQL 服务:net start mysql  和  net stop mysql
  2. 连接 MySQL: ​语法 mysql -hhost –uusername -ppassword ,本地主机(localhost)做服务器时并不用写主机(host)地址 “-h” 参数。
  3. 隐式输入密码:输入 mysql -uusername -p 后回车输密码时密码就为隐式输入。
  4. 连接 MySQL 后推出:键入 quit; 或者 exit; 。注意:输入分号表示执行命令。
  5. 查看所有数据库(MySQL 默认自带有三个或四个数据库):SHOW DATABASES;
  6. 使用数据库:USE 数据库名;
    进入后可以查看该数据库里面的表:SHOW TABLES;
    查询某个表的所有信息:SELECT FROM 表名称; 例如: SELECT FROM USER \G;(其中星号代表“所有”,“\G” 表示 format 格式化,信息将垂直有条理地显示,注意 G 须大写)
    修改密码(不建议在命令行修改,易出错):示例,修改其中一个名叫 MySQL 的数据库的 root 用户的密码:update user set password=password('1234') where user='root';
  7. 创建数据库:CREATE DATABASE [IF EXISTS] 数据库名;
  8. 删除数据库:DROP DATABASE [IF EXISTS] 数据库名;


MySQL 数据库可视化工具

实际开发过程中,除非你是数据库管理员(Database Administrator,简称DBA),我可以直接在 SQLyog、Navicat 等数据库可视化工具中操作数据库,并不需要掌握全部的 SQL 语句,当然,常用的那几条还是要记住的。

常用的可视化工具:SQLyog(功能强大 可动态生成SQL语句)、Navicat(简洁易用)……

注意事项:

列名大小写:
列名、列别名均不区分大小写

字段值大小写:
表与行的 collation,bin 与 cs 区分大小写,ci不区分大小写。
MySQL 对 collation(校对、排序规则)约定的命名方式如下:

  • ci:case insensitive collation,不区分大小写
  • cs: case sensitive collation,区分大小写
  • bin: binary case sensitive collation,区分大小写的

数据表:
行:也称实体(类似 Java 对象)。
列:也称字段(类似属性)。字段长默认为11位。



结构化查询语言

SQL(Structured Query Language) 是结构化查询语言的缩写。
SQL 是在数据库上执行数据操作、检索及维护所使用的标准语言,可以用来查询数据,操纵数据,定义数据,控制数据,所有数据库都使用相同或者相似的语言。

结构化查询语句分类:

名称 解释 命令
DDL (数据定义语言) 定义和管理数据对象,如数据库,数据表等 CREATE、DROP、ALTER
DML (数据操作语言) 用于操作数据库对象中所包含的数据 INSERT、UPDATE、DELETE
DQL (数据查询语言) 用于查询数据库数据 SELECT
DCL (数据控制语言) 用来管理数据库的语言,包括管理权限及数据更改 GRANT、COMMIT、ROLLBACK

执行 SQL 语句时,用户只需要知道其逻辑含义,而不需要知道SQL语句的具体执行步骤。

  • 数据定义语言(DDL) : Data Definition Language
    用于建立、修改、删除数据库对象,包括创建语句 CREATE 、修改语句 ALTER 、删除语句 DROP 。这类语言不需要事务的参与,自动提交。

  • 数据操作语言(DML) : Data Manipulation Language
    用于改变数据库数据,包括 INSERT、UPDATE、DELETE 三条语句。其中,INSERT 语句用于将数据插入到数据库中,UPDATE 语句用于更新数据库中已存在的数据,DELETE 用于删除数据库中已存在的数据。DML 语言和事务是相关的,执行完 DML 操作后必须经过事务控制语句提交后才真正的将改变应用到数据库中。

  • 事务控制语言(TCL):Transaction Control Language
    用来维护数据一致性的语句,包括提交 COMMIT 、回滚 ROLLBACK 、保存点 SAVEPOINT 三条语句,其中 COMMIT 用来确认已经进行的数据库改变,ROLLBACK 语句用来取消已经进行的数据库改变,当执行 DML 操作后(也就是上面说的增加、修改、删除等动作),可以使用COMMIT语句来确认这种改变,或者使用 ROLLBACK 取消这种改变。SAVEPOINT 语句用来设置保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变。

  • 数据查询语言(DQL):Data Query Language
    用来查询所需要的数据。使用最广泛,语法灵活复杂。

  • 数据控制语言(DCL) : Data Control Language
    用于执行权限的授予和收回操作、创建用户等,包括授予权限 GRANT 语句,收回 REVOKE 语句,CREATE USER 语句。DCL 语句也不需要事务的参与,是自动提交的。


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant