MySQL数据库初体验
- 1.数据库基本概念
- 1.1 数据Data
- 1.2 表
- 1.3 数据库
- 1.4 数据库管理系统
- 1.5 数据库系统
- 2.数据库的发展
- 3.主流的数据库介绍
- 3.1 SQL Server(微软公司产品)
- 3.2 Oracle (甲骨文公司产品)
- 3.3 DB2(IBM公司产品)
- 3.4 MySQL (甲骨文公司收购)
- 3.5 国产数据库系统
- 4.关系数据库
- 4.1 概念
- 4.2 E-R图
- 4.3 关系数据库
- 4.4 关系数据库应用
- 5.非关系数据库
- 5.1 概念
- 5.2 非关系数据库的优点
- 5.3 非关系数据库应用
- 6. 增删改查命令操作
- 6.1 查看数据库结构
- 6.2 SQL语言
- 6.3 创建及删除数据库和表
- 6.4 查询表数据
- 6.5 修改表名和表结构
- 7.知识点总结
1.数据库基本概念
1.1 数据Data
数据就是描述事物的符号记录。主要包括数字,文字、图形、图像、声音、档案记录等。一般以“记录”形式按统一的格式进行存储。
1.2 表
表就是将不同的记录组织在一起。主要是用来存储具体数据。
1.3 数据库
数据库(database)是表的集合,存储数据的仓库。数据库是用来组织、存储和管理数据的仓库。以一定的组织方式存储相互有关的数据集合,是按照数据结构来组织、存储和管理数据的仓库。
1.4 数据库管理系统
数据库管理系统(DBMS)是实现对数据库资源有效组织、管理和存取的系统软件。数据库的建立和维护功能、数据定义功能、数据操纵功能、数据库的运行管理和通信功能。
1.5 数据库系统
数据库系统是一个人机系统由硬件、OS、数据库、DBMS、应用软件和数据库用户组成。用户可以通过DBMS或应用程序操作数据库。
2.数据库的发展
3.主流的数据库介绍
3.1 SQL Server(微软公司产品)
-
面向Windows操作系统
-
简单、易用
3.2 Oracle (甲骨文公司产品)
-
面向所有主流平台
-
安全、完善,操作复杂
3.3 DB2(IBM公司产品)
-
面向所有主流平台
-
大型、安全、完善
3.4 MySQL (甲骨文公司收购)
- 免费、开源、体积小
3.5 国产数据库系统
- 华为:欧拉
- 阿里:龙蜥
- 腾讯:tencentOS
- 麒麟:(银河麒麟、中标麒麟 – >centos 优麒麟 – > Ubuntu )
- 统信
- 红旗
4.关系数据库
4.1 概念
-
关系数据库系统是基于关系模型的数据库系统;
-
关系模型的数据结构使用简单易懂的二维数据表;
-
关系模型可用简单的== “实体-关系”(E-R)图==来表示;
-
E-R图中包含了实体(数据对象)、关系和属性三个要素。
4.2 E-R图
实体
也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。
属性
实体所具有的某一特性,一个实体可以有多个属性。
联系
实体集之间的对应关系称为联系,也称为关系。
总体来说所有实体及实体之间联系的集合构成一个关系数据库。
4.3 关系数据库
数据库分两大类:关系型数据库和非关系型数据库。
关系型数据库典型代表:MySQL(5-7/8.0)、Mariadb、PostgreSQL、Qracle、SQL Server、DB2
国产数据库代表:阿里云——RDB、华为——高斯、腾讯——TDBA、阿里——Oceanbase、人大金仓、达梦
关系数据库的存储结构是二维表格。在每个二维表中,每一行称为一条记录,用来描述一个对象的信息;每一列称为一个字段,用来描述对象的一个属性。
关系型数据库的存储结构是二维表。如果想要创建数据表,需要先建立库,然后在库中创建表,在表中添加多个列和行,在不同的列或者不同行中添加数据。其中列是存储字段,用来描述对象的一个属性;而行是存储记录,用来描述一个对象的信息。
4.4 关系数据库应用
5.非关系数据库
5.1 概念
-
非关系数据库也被称作NoSQL (Not Only sQL)。存储数据不以关系模型为依据,不需要固定的表格式。
-
按照键值对的形式进行存储,例如k/v、key/value。
5.2 非关系数据库的优点
- 数据库可高并发读写;
- 对海量数据高效率存储与访问;
- 数据库具有高扩展性与高可用性。
5.3 非关系数据库应用
6. 增删改查命令操作
6.1 查看数据库结构
(1)查看当前服务器中的数据库
show databases; #不区分大小写,分号;表示结束
(2) 查看数据库中包含的表
use 数据库名;
show tables;
show tables form 数据库; #不登录数据库,直接查看数据库中的表信息
(3)查看表的结构(字段)
use 数据库名;
describe 数据库名. 表名; #不登录数据库,查看数据库中的表结构信息
可缩写成:desc 表名;
6.2 SQL语言
SQL语句用于维护管理数据库,包括数据查询、数据更新、访向控制、对象管理等动能。
SQL语言分类:
DDL: 数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中数据进行管理(增、删、改)
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
6.3 创建及删除数据库和表
(1)创建新的数据库
create database 数据库名;
(2)创建新的表
create table 表名 (字段1 数据类型,字段2 数据类型,.....,[primary key(设为主键的字段名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
(3)删除指定的数据表
use 数据库名;
drop table [数据库名],表名; #如不用use进入库中,则需加上数据库名
(4)删除指定的数据库
drop database 数据库名;
6.4 查询表数据
(1)查询数据记录
select 字段名1,字段名2[,...] from 表名 [where条件表达式];
select * from clr1;
select name,age from clr1 where sex='男';
select * from clr1 where id>=2 and id<=90;
select * from clr1 limit 2; #只显示头2行
select * from clr1 limit 2,2; #显示第2行后的前2行(不包括第2行,也就是第3、4行)
select * from clr1\G #以列表方式竖向显示,结尾没有分号,在Xshell中可以看到效果,在Navicat中无法实现
(2)修改、更新数据表中的数据记录
update 表名 set 字段名1=字段值1 [,字段名2=字段值2] [WHERE条件表达式1];
update clr1 set name='小红花' where id=90;
update clr1 set age=29,sex='男' where id=6 or name='小可爱';
(3)在数据表中删除指定的数据记录
delete from 表名 [WHERE条件表达式];
delete from clr1 where id=8;
6.5 修改表名和表结构
(1)修改表名
alter table 旧的表名 rename 新的表名
alter table clr1 rename clr;
(2)扩展表结构(增加字段)
alter table 表名 add 字段 数据类型 default ' 默认值' ;
alter table clr add hobby varchar(10) default '不明';
#default '不明':表示此字段设置默认值 爱好不明,可与NOT NULL配合使用
(3)修改字段(列)名,唯一键
alter table 表名 change 旧列名 新列名 数据类型 [unique key];
alter table clr change name username varchar(10) unique key;
(4)删除字段
ALTERTABLE表名DROP字段名;
alter into clr drop hobby;
7.知识点总结
DDL:用于创建数据库对象:库 表 索引
create database 库名;
use 库名;
create table 表名(字段1 数据类型,字段2 数据类型,... [,primary key (字段)]);
drop table 表名;
drop database 库名;
show databases;
show tables [from 库名];
desc [库名.]表名;
DML:用于管理表数据
insert into 表名 values(字段1的值,字段2的值,....); #要按照表结构的字段顺序设置值
insert into 表名(字段1,字段4,...) values (字段1的值,字段4的值,...); #插入指定字段的值,未指定的字段默认为NULL
update 表名 set字段=值 where条件表达式;
delete from 表名 where条件表达式;
DQL::用于根据条件查询表数据
select * from 表名 [where条件表达式];
solect 字段1,字段2,... from表名 [where条件表达式];
select * from表名\G #纵向查看每行记录字段的值,需要在Xshell中使用,才能看到效果
select * rom表名 limit N; #显示表的前N行记录
select * from表名 limit N,M; #显示从表的第N行之后的连续M行记录(不包含第N行)
修改表结构
操作名称 | 具体步骤 |
---|---|
修改表名 | alter table 旧表名 rename 新表名; |
增加表字段 | alter table 表名 add 新字段 数据类型 字段属性; |
修改表字段名 | alter table 表名 change 旧字段名 新字段名 数据类型 字段属性; |
删除字段 | alter table 表名 drop 字段名; |