xml地图|网站地图|网站标签 [设为首页] [加入收藏]
当前位置: www8029com > 澳门新葡8522最新网站 > 正文

MySQL数据库

时间:2019-11-25 19:12来源:澳门新葡8522最新网站
1.1  数据库的发展史 1.1.1  萌芽阶段——文件系统 文件系统 1.1.2  第一代数据库——层次模型、网状模型 1.1.2.1层次模型 这是一种导航结构,导航结构的优点:分类管理;导航结构的缺

1.1 数据库的发展史

1.1.1 萌芽阶段——文件系统

文件系统

1.1.2 第一代数据库——层次模型、网状模型

1.1.2.1层次模型

这是一种导航结构,导航结构的优点:分类管理;导航结构的缺点:如果保存不是同一类的数据,效率很低。

层次结构最大问题是失去了数据的完整性

澳门新葡8522最新网站 1

 

1.1.2.2网状模型

澳门新葡8522最新网站 2

 

1.1.3 第二代数据库——关系型数据库

每一个存放数据的表都是独立的,通过公共字段建立关系。

澳门新葡8522最新网站 3

 

1、 优点:

a) 每个都独立了,查询的时候效率高

b) 对数据的约束功能强大

2、 缺点:多表查询效率低。

多学一招:非关系型数据库(NoSQL),这种数据库是一种键值对形式的数据库,查询效率高,但对数据约束功能很低。(redis、mongodb)。非关系型数据库是对关系型数据库的一种补充。

1.2 数据库系统

数据库的本质就是文件

数据库系统(DBS)=数据库(DB) 数据库管理系统(DBMS)

也就是说:数据库系统包括数据库文件和操作数据库文件的软件。

1.3 SQL

SQL是Structured Query Language(结构化查询语言)缩写,用来操作关系型数据库的语言。

SQL语句是一个标准SQL,可以用来操作所有的关系型数据库。

1.3.1 关系型数据库

每个公司为了更多的占有市场份额,在原来的标准SQL基础上扩展自己独有的东西用来吸引消费者。

数据库

使用语言

开发公司

access

SQL

微软

SQL Server

T-SQL

微软

MySQL

MySQL

Oracle公司收购

Oracle

PL/SQL

甲骨文公司

问题:已知MySQL和Oracle都支持标准SQL(SQL-92),请问在MySQL上编写的MySQL语句能否运行在Oracle上?

答:不能,因为MySQL是MySQL扩展的东西。不能运行在Oracle上。他们只能相互运行标准SQL。

1.4 MySQL操作过程

澳门新葡8522最新网站 4

1.5 启动关闭MySQL服务

1.5.1 方法一:在服务面板中启动或关闭

澳门新葡8522最新网站 5

 

 

多学一招:通过命令打开服务面板

打开运行面板(win R),在面板中输入services.msc

澳门新葡8522最新网站 6

 

1.5.2 方法二:通过命令行启动和关闭

启动服务:net start 服务名

关闭服务:net stop 服务名

澳门新葡8522最新网站 7

 

 

 

澳门新葡8522最新网站 8

 

多学一招:net start 显示当前所有的服务列表。

1.6 MySQL客户端

 

1.6.1 MySQL自带的命令行客户端

安装MySQL后,会自带一个MySQL 5.5 Command Line Client命令行客户端。

澳门新葡8522最新网站 9

 

 

双击打开,输入密码,就连接上服务器了。

缺点:此客户端只能连接本地的MySQL服务器。

1.6.2 window界面客户端

1、 MySQL-Front

2、 Navicat

1.6.3 web界面

phpMyAdmin

1.6.4 windows的命令行

运行——cmd

1.7 windows命令行连接服务器

host主机-h

username用户名-u

password密码-p

port端口-P

澳门新葡8522最新网站 10

 

 

注意:如果配置了MySQL的环境变量,执行mysql命令就不需要进入mysql.exe的目录。

127.0.0.1表示本地地址,等价于localhost

多学一招:如果连接的是本地的MySQL服务器,-h可以省略;如果使用的是3306端口,-P也可以省略

澳门新葡8522最新网站 11

 

可以通过密文来登录

 澳门新葡8522最新网站 12

 

1.8 退出MySQL客户端并关闭连接

1、 exit

 澳门新葡8522最新网站 13

2、 quit

 澳门新葡8522最新网站 14

 

3、 q

澳门新葡8522最新网站 15

1.9 数据库基本概念

1、 数据库和表

数据库用来存放表,表里面存放数据,一个数据库可以存放多个表,一个表中存放多个数据

澳门新葡8522最新网站 16

 

 

2、 关系:两个表的公共字段称为关系

3、 行:也称为记录,也称为实体

4、 列:也称为字段,也称为属性

在结构上称为行和列

在数据上称为记录和字段

5、 数据冗余:相同的数据存储在不同地方

澳门新葡8522最新网站 17 

脚下留心:冗余只能减少,不能杜绝。减少冗余后,表的数量就增加了。

6、 数据完整性=正确性 准确性

正确性:数据类型正确

准确性:数据的范围准确

思考:学生年龄是int型,输入10000岁,正确性和准确性如何?

答:正确的,但是不准确

1.10 数据库操作

1.10.1 创建数据库

1、语法:create database if not exists`数据库名` charset=字符编码

澳门新葡8522最新网站 18

 

2、如果创建的数据库已经存在,则会报错

澳门新葡8522最新网站 19

 

 

解决:创建时候判断一下,数据库是否存在,如果不存在就创建

澳门新葡8522最新网站 20

 

 

3、如果数据库名是关键字或特殊字符会报错

澳门新葡8522最新网站 21

 

 

解决:是数据库名上加上反引号

澳门新葡8522最新网站 22

 澳门新葡8522最新网站 23

澳门新葡8522最新网站 24

 

为了保证创建数据库成功,可以在所有的数据库名上加上反引号

4、可以给创建的数据库指定字符编码

 澳门新葡8522最新网站 25

 

 澳门新葡8522最新网站 26

 

1.10.2 MySQL数据库目录

1、 此目录在安装mysql服务器的时候选择路径

2、 可以在my.ini中查看并更改

 澳门新葡8522最新网站 27

 

3、 创建一个数据库就在data文件夹下创建一个与数据库同名的文件夹,并在此文件夹下多了一个db.opt文件。db.opt文件是设置数据库的字符集和校对集。

 澳门新葡8522最新网站 28

 澳门新葡8522最新网站 29

1.10.3 显示数据库

语法:show databases;

 澳门新葡8522最新网站 30

 

information_schema:存储了mysql服务器的管理数据库的信息。比如:数据库名、表名、字段名、字段的数据类型、访问权限

performance_schema:MySQL5.5新增的一个数据库,主要用来收集数据库服务器性能参数。

mysql:mysql系统数据库,保存比如用户名、密码

test:给用户学习测试用的数据库

1.10.4 显示创建数据库的SQL语句

语法:show create database `数据名`

澳门新葡8522最新网站 31

1.10.5 修改数据库

只能修改数据库字符编码

语法:alter database `数据库名` charset=字符编码

 澳门新葡8522最新网站 32

1.10.6 删除数据库

1、语法:drop database [if exists] `数据库名`

澳门新葡8522最新网站 33

2、如果删除的数据库不存在会报错

澳门新葡8522最新网站 34

解决:删除之前判断一下,存在就删除

 澳门新葡8522最新网站 35

 

1.10.7 选择数据库

语法:use `数据名`

澳门新葡8522最新网站 36

1.11 表的操作

1.11.1 创建表

语法:

create table [if not exists] `表名`(

字段名 数据类型 [null|not null] [default] [auto_increment] [primary key] [comment],

……

)[engine=存储引擎] [charset=字符编码]

null|not null:是否为空

Default: 默认值

Auto_increment: 自动增长

Primary key: 主键

Comment: 备注

Engine:存储引擎,不同存储引擎表示不同的数据存储方式

Charset:设置表的字符编码

1、创建最简单的表

澳门新葡8522最新网站 37 

2、创建复杂的表

澳门新葡8522最新网站 38

 

 

1.11.2 数据表文件

一个数据库对应一个文件夹,一个表对应一个或多个文件。

1、引擎是myisam,一个表对应三个文件

 澳门新葡8522最新网站 39澳门新葡8522最新网站 40

2、引擎是innodb,一个表对应是一个文件

澳门新葡8522最新网站 41

 

 

 

所有的innodb的数据放在一个统一的文件中管理,路径在data文件夹下ibdata1文件。如果数据量很多,mysql会自动的生成ibdata2,ibdata3,…文件

多学一招:myisam引擎的表相互之间独立, Myisam的表可以随意的拷贝粘贴。innodb引擎的表相互之间不独立,

1.11.3 myisam和innodb引擎

1、 Myisam

a) 读取速度快

b) 对数据的约束能力低(不支持触发器,存储过程等等)

c) 容易产生大量碎片

2、 Innodb

a) 读取速度没有myisam快

b) 对数据的约束能力强(支持触发器,存储过程等等)

c) 不产生碎片

1.11.4 给指定的数据库中创建表

澳门新葡8522最新网站 42

1.11.5 显示表

语法:show tables;

澳门新葡8522最新网站 43

 

1.11.6 显示表的创建语句

语法:show create table 表名[G]

澳门新葡8522最新网站 44

 

G的作用:

G是将显示的字段竖着排列

1.11.7 查看表结构

语法:describe[desc] 表名

澳门新葡8522最新网站 45

 

澳门新葡8522最新网站 46

 

1.11.8 复制表

基于现在的表创建一个新表

语法一:create table 新表 select 字段1,字段2 from 旧表

澳门新葡8522最新网站 47

 

脚下留心:这种方式创建表不能从父表中复制主键,自动增长;但是父表中的数据被复制过来。

语法二:create table 新表 like 旧表

澳门新葡8522最新网站 48

 

脚下留心:like的方法只能复制表结构,不能复制表数据。

1.11.9 修改表

语法:alter table 表名,可以对表添加字段,删除字段等等操作

1、 添加字段   add [column]

1、在最后一列后面添加字段

澳门新葡8522最新网站 49

 

2、将字段添加到第一列

澳门新葡8522最新网站 50

 

3、将添加的字段放在指定字段之后

澳门新葡8522最新网站 51

 

2、 删除字段

澳门新葡8522最新网站 52

不能清空所有的字段。

3、 修改字段 modify   change

a) 只改字段属性,不改字段段名(modify)

将name的属性改为varchar(30),并将位置移动到第一列

澳门新葡8522最新网站 53

能修改字段的所有属性,除了字段名和默认值,备注,可以添加任意属性,

b) 改属性并改字段名

将name改名为myname varchar(10)并将位置放在id的后面

澳门新葡8522最新网站 54

 

澳门新葡8522最新网站 55

能修改字段的所有属性,可以添加任意属性,除了默认值,如果想设置   

4、 修改引擎

澳门新葡8522最新网站 56

 

5、 修改表名   rename to

澳门新葡8522最新网站 57

 

6、将stu1表移动到data数据库下并改名为stu.

澳门新葡8522最新网站 58

 

1.11.10 删除表

语法:drop table [if exists] 表1,表2.表3,…

删除多个表

澳门新葡8522最新网站 59

 

删除之前可以判断表是否存在

 澳门新葡8522最新网站 60

 

可以一次判断多个表是否存在

澳门新葡8522最新网站 61

 

1.12 数据操作

新建测试表

create table stuinfo(

id int auto_increment primary key comment '主键',

name varchar(20) not null comment '姓名',

sex char(1) not null default '男' comment '性别',

score int comment '成绩'

)engine=innodb charset=utf8;

1.12.1 插入数据

语法:insert into 表名 (字段名) values (值)

 

总结:

1、 值的个数、顺序和插入字段的个数、顺序必须一致。

澳门新葡8522最新网站 62

 

2、 自动增长列可以手动输入数字,也可以通过null让MySQL自动增长

澳门新葡8522最新网站 63

 

3、 插入字段和表字段顺序可以不一致,但是插入的值必须和插入字段的顺序一致。

 澳门新葡8522最新网站 64

 

4、 如果插入值的顺序、个数和表字段的顺序个数一致的话,插入字段可以省略

 澳门新葡8522最新网站 65

 

5、 插入默认值

a) 如果一个字段有默认值,此字段上没有值的插入就会自动的插入默认值

 澳门新葡8522最新网站 66

 

b) 通过default关键字插入默认值

 澳门新葡8522最新网站 67

 

6、 一次插入多条数据

澳门新葡8522最新网站 68

7、 使用insert…set插入数据

 澳门新葡8522最新网站 69

 

1.12.2 修改数据

语法:update 表名 set 字段名=值 [where 条件] [order by 排序] [limit 限制]

将rose的性别改成“女”,成绩改成66

澳门新葡8522最新网站 70

将班级的前3名同学性别改成男

 澳门新葡8522最新网站 71

 

1.12.3 删除数据

语法:delete from 表 [where条件] [order by 排序 asc|desc] [limit 数量]

--删除学号是1的学生

澳门新葡8522最新网站 72

 

澳门新葡8522最新网站,--删除第一名

 澳门新葡8522最新网站 73

 

--删除成绩在80分以下的

 澳门新葡8522最新网站 74

 

--清空表 

澳门新葡8522最新网站 75

 

 

多学一招:清空表的方法有两个,第一个是delete from 表名,还有一个是truncate table 表名。delete from 表名执行过程是将数据一条一条的依次删除。truncate table执行过程是将整个表删除同时创建一个相同的表,很显然这种方式清空表的效率高。

澳门新葡8522最新网站 76

 

Select * from  表名  删除表的时候自增长的属性还在,在重新加入的时候会延续自增长的键值。

1.13 字符集

字符集:可见字符在保存和传输时对应的二进制编码集合。由概念可知,字符

集在两个地方使用

1、 数据存储的时候

2、 数据传输的时候

1.13.1 数据存储的时候使用字符集

MySQL可以在服务器、数据库、表、字段上设置字符编码

澳门新葡8522最新网站 77

 

注意:字符编码在数据库上设置就可以了。

1.13.2 数据在传输的时候使用字符集

场景:

1、 创建表的时候只用中文就报错

澳门新葡8522最新网站 78

 

2、 在插入数据中出现中文报错

 澳门新葡8522最新网站 79

 

分析

澳门新葡8522最新网站 80

 

客户端发送的编码有客户端决定的。我们现在用的客户端是windows的命令行,查看命令行的编码:客户端右键——属性——

澳门新葡8522最新网站 81

 

查看服务编码

澳门新葡8522最新网站 82

 

解决:告诉服务器通过gbk编码解析发送SQL语句。语法:set 变量名=值

澳门新葡8522最新网站 83

 

现在插入成功!

场景:查看插入的数据

澳门新葡8522最新网站 84

 

原因:返回的编码是utf8,客户端用gbk去解析的。

解决:将返回的结果编码设置为gbk;

澳门新葡8522最新网站 85

 

再次查询,成功

注意:我们一般只执行set names ‘字符编码’,因为这个SQL语句可以一次更改3个变量。

澳门新葡8522最新网站 86

 

1.14 校对集

1.14.1 概念

在某种字符集下,字符和字符的比较关系。比如a和B的大小关系,如果区分大小写a>B,如果不区分大小写a<B。这种比较的关系是有校对集决定的。

校对集依赖于字符集,不同的字符集他们的比较规则也不一样,如果字符集发生更改,校对集也要重新定义。

不同的校对集对同一组字符比较结果不一致的。

1.14.2 定义校对集

语法:collate=校对集

定义两个表,校对集不一样

create table t1(

name char(1)

)charset=utf8 collate=utf8_general_ci;

 

create table t2(

name char(1)

)charset=utf8 collate=utf8_bin;

插入测试数据

insert into t1 values ('a'),('B');

insert into t2 values ('a'),('B');

通过排序查看结果

澳门新葡8522最新网站 87

 

澳门新葡8522最新网站 88

 

校对集名字规则

_bin:表示按二进制编码进行比较

_ci:不区分大小写

_cs:区分大小写

中文排序规则:按照汉字的拼音来排序

1.14.3 显示所有的字符集

澳门新葡8522最新网站 89

 

1.14.4 显示所有的校对集

澳门新葡8522最新网站 90

 

编辑:澳门新葡8522最新网站 本文来源:MySQL数据库

关键词: www8029com