韩忠康6天mysql笔记课件ppt

 数据库系统

DataBase System = 数据库管理系统(DBMSDataBase Management System) + 数据库(DataBase) + 管理员

DBS = DBMS + DB

定义:对大量信息进行管理的高效解决方案,按照数据结构来组织、存储和管理数据的库

关系型数据库系统

建立在关系模型上的数据库系统。

 

关系模型:

当将日常生活中的实体(学生),和实体的属性(学生的学号,姓名)保存到数据中时,应该如何处理该实体结构。

1,数据结构可以规定,同类数据,结构一致。就是一个二维的表格。

2,数据之间的关系可以设置。实体之间的联系。

Nosql

Not only sql

非关系型数据库系统

mongoDBMemBase

对象型数据库

关系型数据库的典型概念:

数据库databse:数据的仓库。

table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式。

&列:行用于记录数据,列用于规定数据格式。

 

记录:行内的数据

字段:数据的某个列。

 

SQL:数据库管理系统,用来管理数据的语言。结构化查询语言(SQLStructured Query Language)。

 

MySQL

 

数据库(管理+数据)  +  谁能向数据库系统发出如何管理的命令。

 

MySQL是基于C/S架构的。客户端/服务器 Client/SERVER

 

 

 

安装

2013415日星期一

08:57

下载最新的相应的mysql版本。

 

安装 + 配置。

 

选择自定义

 

 

安装的组件信息:

 

服务器软件目录:

 

数据目录:

 

点击install安装即可:

 

 

配置:

 

机器类型

 

是否支持事务功能:

 

innodb表空间:

 

连接数量:

 

 

 

字符集设定:

 

配置windows管理相关:

 

配置安全选项:

 

 

最后执行配置即可:

 

 

配置后,会启动服务。

 

提示,如果出现配置失败,很大的可能性由于 存在Mysql服务。不能安装服务成功。

典型的可以将已有的卸载,再重新安装即可。

 

 

 

使用

2013415日星期一

11:44

 

 

 

 

 

 

 

 

 

 

mysql的执行目录

 

 

 

管理MySQL服务器端程序

1,通过windows提供的服务管理完成

打开服务:

 

 

 

 

 

命令行形式管理windowsMysql服务:

Net start 服务名

Net stop 服务名

 

 

2,直接使用mysqld来运行服务

 

 

 

 

 

图例

2013415日星期一

12:03

 

客户端/服务端 交互流程

 

已使用 Microsoft OneNote 2010 创建
一个用于存放所有笔记和信息的位置

 

 

库操作

 

 

 

 

 

 

 

 

 

2013415日星期一

10:16

 

 

 

 

 

 

 

 

 

 

 

 

TIP:语句 要求使用语句结束符 ; 来结束。

 

 

 

 

 

创建数据库:

Create database db_name [数据库选项];

标识符(数据库名)命名规则:

大小写取决于当前操作系统。(认为是区分的)

见名知意。推荐使用下划线方式。

 

标识符的字符:

使用任意字符,数字,符号,甚至是中文。但是一些特殊的组合,例如纯数字组合,特殊符号,包括mysql是内部关键字 应该使用标识符 限定符来包裹。

 

限定符: 反引号。

 

中文可以:但是要求客户端编码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mysql的数据目录,形成一个目录,目录名是数据库名。

如果是特殊字符,则使用编码的形式保存

 

 

目录内,存在一个文件,用于保存 数据库的选项信息。Db.opt

 

 

 

 

 

 

 

 

数据查询

 

查看当前存在的数据库:

Show databases;

 

 

注意 ,并不是只有 用户可以创建数据库,mysql内部维护自己数据库。

 

 

查看数据的创建语句:

Show create database db_name;

 

数据库删除:

Drop database db_name;

 

修改数据库信息

Alter database db_name [修改指令]

 

指令:数据库属性的修改。

 

 

 

 

 

修改名字:

 

简单的可以直接修改目录名

 

将数据库内容全部导出,新建一个数据库,将内容导入,删除旧数据库。

创建一个新数据库,将旧数据库内的表,都移动(重命名)到新数据库内,删除旧数据库。

 

 

 

表操作

2013415日星期一

10:17

确定表的所属数据库

 

数据库是表的容器,

表,必须属于某个数据库。

 

可以通过 . 语法,指明 数据表所属的数据库

.  database.table 如果任何的标识符,出现的特殊字符,需要使用反引号包裹。不同的标识符,分别包裹:

 

 

进行表操作时,都会指定当前的默认数据库:

Use db_name;只是设定了默认数据库,不会影响操作其他数据库

 

 

 

注意:选择了默认的数据库,只会影响默认行为。可以操作任意的数据库。

 

表名前缀

为了区分相同逻辑表名的不同应用,给逻辑表名,增加前缀,形成真实表名。

 

 

TIP:

可以使用\ G 作为语句结束符。

 

 

查看表结构(描述表结构):

Describe tbl_name;

 

 

简写  desc tbl_name;

 

数据库对应的目录,

显然,数据库内容对应的就应该是 目录的内容,文件。

 

 

删除表:

 

 drop table [if exists] tbl_name;

 

 

 

表不存在,不能删除,会报告错误。

 

 

适用于 database : drop database if exists db_name;

修改表:

修改表名

 

Rename table old_tbl_name to new_tbl_name;

 

支持同时修改多个表。

 

 

支持,跨数据库重命名。

 

 

可以利用 跨数据库重名名表,可以为数据库重命名。

创建一个新的数据库,旧数据库内的表,都rename到新的数据库内。删除旧的数据库。

 

 

修改列定义

 

修改表结构,上面的是子命令,上级是, alter table tbl_name [add|drop|change|modify]

 

增加一个新列

Add 新列的定义

 

删除一个列

Drop 列名

 

 

修改一个列的定义

Modify 列定义

 

 

重命名一个列

Change old_column 新列定义

 

 

 

 

 

 

 

修改表选项

Alter table tbl_name 新的表选项。

 

 

 

 

 

 

 

 

 

 

 

数据操作

 

 

 

 

Crud

Create,read(retrieve),update,delete

 

 

 

 

 

2013415日星期一

10:17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

创建数据(插入数据)

 

获得数据(查询数据)

 

删除数据

 

修改数据

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

获得数据

Select 字段列表 from 表名 查询条件。

 

字段列表,可以使用 *代替,表示所有的字段。

 

查询条件可以省略,表示所有的记录都获得。相当于where 1;

 

有条件的:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

删除数据

 

Delete from 表名 条件。

 

删除 需要在逻辑上严格给条件,否则

容易造成数据误操作。导致损失。

语法上可以没有where

 

可以:如果需要删除所有数据,使用where 1

 

 

 

 

 

 

 

 

 

 

修改数据

Update 表名 set 字段=新值, … 条件。

 

 

 

 

 

 

 

 

 

 

 

 

SQL

2013415日星期一

14:04

结构化查询语言,Structured Query Language

分类:

针对的操作对象不同,分成不同的语言:

1,数据操作(管理)语言。DML

查询,获得数据。DQL

管理,增加,删除,修改数据。DML

2,数据定义语言(对保存数据的格式进行定义)DDL

3,数据库控制语言(针对数据库软件服务进行操作)DCL

 

 

 

 

字符集

2013415日星期一

17:14

字符的集合

 

构成部分:

字符的集合,展示

字符的编码,保存和处理

 

 

 

 

 

 

 

 

 

 

 

Mysql支持的常见字符集:

通过命令:

Show character set;

 

可以看到支持了好多!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

字符集决定的是 字段的数据,是何种形式保存的

 

 

 

 

 

 

 

 

如果通过客户端操作服务器,那么客户端与服务器之间进行数据通信,要保证编码一致。可以将互相发送的数据,转换成 目标可以接收的编码。

 

 

通过mysql的配置:

Character_set_client 客户端发送数据编码

Character_set_results客户端接收数据的编码

 

通过 指令 show variables like 'character_set_%';

 

设置变量:

Set 变量名=

 

Set character_set_client = gbk;

告知服务器,客户端发送的数据是gbk编码

执行 没有返回数据的语句没有问题了。

 

如果需要从服务器返回数据,还需要设置服务器发送给客户端的编码

Set character_set_results = gbk;

服务器在发送数据时,才能转成客户端认识的编码

 

 

统一的操作可以用 set names gbk可以完成。(简单项目通用的做法)

 

其实还有一个有影响:连接层编码。

Set character_set_connection = gbk;

 

Set names  可以设置上面的三个。

 

典型的情况,setnames即可。如果情况复杂,需要分开设置。

 

 

 

转换的过程

Client->connection->[服务器内部编码]->result

 

 

 

 

 

 

 

 

 

图例

 

 

 

 

 

 

 

 

 

 

 

 

2013415日星期一

14:06

 

 

 

 

 

扫一扫手机访问