MySQL数据库基础

MySQL数据库基础

  • 数据库概述
  • 数据库系统
    • 数据库系统发展史
    • 当今主流数据库介绍
  • 数据库分类
  • 关系数据库应用
  • 非关系数据库介绍
  • MySQL数据库
    • MySQL数据库介绍
    • MySQL商业版与社区版
    • MySQL产品阵营
  • MySQL数据库常用语句分类
  • 管理数据库和表
    • 创建数据库和表
  • 删除数据库和表
  • 查看数据库结构
  • 管理数据表中的数据
  • 在数据库中删除指定的数据记录
  • 数据库的高级操作
  • 克隆表

数据库概述

数据(Data)

描述事物的符号记录
包括数字,文字、图形、图像、声音、档案记录等
以“记录”形式按统一的格式进行存储

将不同的记录组织在一起
用来存储具体数据

数据库

表的集合,是存储数据的仓库
以一定的组织方式存储的相互有关的数据集合

数据库管理系统(DBMS)

是实现对数据库资源有效组织、管理和存取的系统软件

数据库系统

是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
用户可以通过DBMS或应用程序操作数据库

MySQL数据库基础_第1张图片

数据库系统发展史

第一代数据库

自20世纪60年代起,第一代数据库系统问世
是层次模型与网状模型的数据库系统
为统一管理和共享数据提供了有力的支撑

第二代数据库

20世纪70年代初,第二代数据库——关系数据库开始出现
20世纪80年代初,IBM公司的关系数据库系统DB2问世,开始逐步取代层次与网状模型的数据库,成为行业主流
到目前为止,关系数据库系统仍占领数据库应用的主要地位

第三代数据库

自20世纪80年代开始,适应不同领域的新型数据库系统不断涌现
面向对象的数据库系统,实用性强、适应面广
20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面
—些新的元素被添加进主流数据库系统中:例如,Oracle支持的(“关系-对	象”数据库模型

当今主流数据库介绍

SQL Server(微软公司产品)

面向Windows操作系统
简单、易用

Oracle(甲骨文公司产品)

面向所有主流平台
安全、完善,操作复杂

DB2 (IBM公司产品)

面向所有主流平台
大型、安全、完善

ySQL(甲骨文公司收购)

免费、开源、体积小

数据库分类

关系数据库

关系数据库系统是基夭关系模型的数据库系统
关系模型的数据结构使用简单易懂的二维数据表
关系模型可用简单的“实体-关系”(E-R)图来表示
E-R图中包含了实体(数据对象)、关系和属性三个要素

实体

也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物,如银行客户、银行账户等

属性

实体所具有的某一特性,一个实体可以有多个属性,如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性

联系

实体集之间的对应关系称为联系,也称为关系,如银行客户和银行账户之间存在“储蓄”的关系

所有实体及实体之间联系的集合构成一个关系数据库

关系数据库的存储结构是二维表格

在每个二维表中

每一行称为一条记录,用来描述─个对象的信息
每—列称为一个字段,用来描述对象的一个属性

关系数据库应用

关系型数据库

Oracle, MySQL
SQLServer、Sybase
Informix、access
DB2、FoxPRO

应用举例

12306用户信息系统
淘宝账号系统
联通手机号信息系统
银行用户账号系统
网站用户信息系统

非关系数据库介绍

非关系数据库也被称作NoSQL (Not Only SQL)
存储数据不以关系模型为依据,不需要固定的表格式
非关系型数据库的优点

数据库可高并发读写
对海量数据高效率存储与访问
数据库具有高扩展性与高可用性

常用的非关系数据库:Redis、mongoDB等

MySQL数据库

MySQL数据库介绍

一款深受欢迎的开源关系型数据库
Oracle旗下的产品
遵守GPL协议,可以免费使用与修改
特点

性能卓越、服务稳定
开源、无版权限制、成本低
多线程、多用户
基于C/S(客户端/服务器)架构
安全可靠

MySQL商业版与社区版

MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用
MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维护,可以免费使用
两者区别

商业版组织管理与测试环节更加严格,会比社区版更稳定
商业版不遵守GPL,社区版遵从GPL可以免费使用
商业版可获得7*24小时的服务,社区版则没有

MySQL产品阵营

第一阵营:5.0-5.1阵营,可说是早期产品的延续
第二阵营:5.4-5.7阵营,整合了MySQL AB公司、社区和第三方公司开发的存储引擎,从而提高性能
第三阵营:6.0-7.1阵营,就是MySQL Cluster版本,为适应新时代对数据库的集群需求而开发
下载网址:http://www.dev.mysql.com/downloads

MySQL数据库常用语句分类

DDL(Date Definition Language,数据定义语言):用来建立数据库、数据库对象和定义字段,如CREATE、ALTER、DROP。
DML(Date Manipulation Language,数据操纵语言):用来插入、删除和修改数据中的数据,如INSERT、UPADTE、DELETE
DQL(Date Query Language,数据查询语言):用来查询数据中的数据,如SELECT
DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,如COMMIT、ROLLBACK、GRANT、REVOKE

管理数据库和表

创建数据库和表

格式:

create table 表名(字段01名称 字段01类型 字段01约束,字段02名称 字段02类型 字段02约束,…)存储引擎,字符集

字段名称、类型、约束解释
字段01名称:属性名称,自定义
字段01类型:int(4) 整型 代表0000-9999
double 浮点型
decimal(5,2)有效数字是5位,小数点后面保留2位 100.00;099.50
float 单精度浮点 4字节
char 字符
char (10)固定长度字符串,字符串要用单引号引起来
varchar(50)可变长度字符串

字段01约束:

非空约束:内容不允许为空 not null
主键约束:非空且唯一 标识 primary key(主键)
默认约束:假如没有填数据,默认预先设定的值填写 default ‘未知’
自增特性:id 1 2 3 4 auto_increment(自动增长)
存储引擎:myisam innodb
字符集:UTF-8

创建数据库

create database a;

使用数据库

use a;

创建表

create table aaa(id int(5) auto_increment primary key, age int(3) not null, name varchar(128) not null, height varchar(128));

char和varchar

1、char的长度是不可变的,而varchar的长度是可变的
字段b:类型char(10),值为: abc,存储为: abc (abc+7个空格)
字段d:类型varchar(10),值为: abc,存储为: abc(自动变为3个的长度)
2、超出长度自动截取
字段c:类型char(3),值为: abcdefg,存储为: abc (defg自动删除)
字段e:类型varchar(3),值为: abcdefg,存储为:abc(defg自动删除)
3、var(10)和char(10),都表示可存10个字符,无论存放的是数字、字母还是UTF8汉字(每
个汉字3字节),都可以存放10个
4、char最多可以存放255个字符
varchar的最大长度为65535个字节,varchar可存放的字符数跟编码有关
字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766个字符
字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845个字符

MySQL数据库基础_第2张图片

数据表中插入列

alter table aaa add column weight varchar(64);

MySQL数据库基础_第3张图片

删除数据库和表

删除表
格式:drop table 库名.表名;

MySQL数据库基础_第4张图片

删除数据库
MySQL数据库基础_第5张图片

查看数据库结构

查看已存在数据库信息

show databases;

MySQL数据库基础_第6张图片

mysql默认4个数据库

information_schema:定义访问数据库元数据的方式。数据库名和表名,列的数据类型、访问权限等。
mysql:核心数据库,负责存储数据库用户、权限、关键字等用户自己需要使	用的控制和管理信息。
performance_schema:数据库的性能参数,存储引擎等。
sys:sys系统库下包含许多视图,它们以各种方式对preformance_schema表进行聚合计算展示。

查看数据库表信息

show tables;

MySQL数据库基础_第7张图片

查看数据表的结构
MySQL数据库基础_第8张图片

管理数据表中的数据

DML语句用于对表中的数据进行管理

包括的操作

insert:插入新数据
update:更新原有数据
delete:删除不需要的数据
注意:对数据的操作用DELETE,对库和表用drop

向数据表中插入新的数据内容

insert into aaa(age,name,height,weight) values(17,'zhangsan',80,111),(18,'lisi',85,112),(18,'wangwu',86,113),(19,'zhaoliu',87,114);

查看插入的信息

select * from aaa; 

MySQL数据库基础_第9张图片

修改、更新数据表中的数据记录

update aaa set age=100,height=100 where name='zhangsan'

MySQL数据库基础_第10张图片

在数据库中删除指定的数据记录

格式:delete from 表名 where 条件表达式(不带where代表删除表中所有记录)

delete from a.aaa where name='zhangsan';

MySQL数据库基础_第11张图片

数据库的高级操作

清空表

delete from info;
truncate table info;
truncate清空表,表还在;drop是删除表中所有记录。
truncate和delete是两者的新值初始id不同。

临时表

临时建立的表,用于保存一些临时数据,不会长期存在

create temporary table a(id int(4) not null auto_increment, name varchar(32) character set utf8 collate utf8_bin not null,age int(10) not null, primary key(id))engine=innodb default charset=utf8;

添加数据

insert into a(id,name,age) values(22,'zhangsan',17),(23,'lisi',20);

可以查看到表中添加的数据;但是查看表的时候,没有这张表

MySQL数据库基础_第12张图片
MySQL数据库基础_第13张图片

克隆表

第一种
复制的是表结构,没有数据

create table aa like a;

MySQL数据库基础_第14张图片

方法二

show create table a\G;

更改表名字后复制粘贴
MySQL数据库基础_第15张图片

CREATE TABLE "bbb" (
  "id" int(5) NOT NULL AUTO_INCREMENT,
  "age" int(3) NOT NULL,
  "name" varchar(128) NOT NULL,
  "height" varchar(128) DEFAULT NULL,
  "weight" varchar(64) DEFAULT NULL,
  PRIMARY KEY ("id")
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

MySQL数据库基础_第16张图片
复制里面的数据在查看

insert into bbb select * from aaa;

MySQL数据库基础_第17张图片

你可能感兴趣的:(Linux)