MySQL结构以及数据管理(增删改查)

目录

1.数据库的简介

 2.数据库分类

2.1关系型数据库

2.2 非关系型数据库 

3.mysql的数据类型

3.1 常用的数据库类型

4.mysql的数据库结构

4.1 查看库信息 

4.2 查看表信息

5.SQL 语句

5.1 SQL语言分类:


1.数据库的简介

数据库(database)是用来组织、存储和管理数据的仓库

数据库管理系统(DBMS):用户可以通过DBMS或应用程序来操作数据库

MySQL结构以及数据管理(增删改查)_第1张图片

1>接受应用程序的数据请求和处理请求

2>将用户的数据请求(高级指令)转换为复杂机器代码(底层指令)

3>实现对数据库的操作

4>从数据库的操作中接受查询结果

5>对查询结果进行处理(格式转换)

6>将处理结果返回给用户

 2.数据库分类

数据库可分为两大类:关系数据库(SQL)非关系数据库(NO SQL)

2.1关系型数据库

  • 关系数据库的存储结构是二维表格 ,表是有行和列。行称为记录,是用来描述一个对象的信息。列称为字段,是用来描述对象的一个属性
  • 关系性数据库常见的有:MYSQL ,Oracle,SQL-Server,MariaDB, postgreSQL 

优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。


缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

2.2 非关系型数据库 

  •       缓存性数据库: redis     Memcache
  •       索引型数据库:  ES(Elasttic search)
  •       时序型数据库:Prometheus
  •        文档型数据库:MongoDB

 非关系型数据库:是键对值的存储结构 ,key (键)----  Value(数值),简称KV结构 

非关系型数据库的存储结构理论上来说不属于数据库的类型,因为非关系型数据库是多种数据结构存储的方式(海量的数据在内存数据库引擎中,把符合条件的数据,筛选写入到磁盘中

优点:

1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。
4、好多数据写在内存中

3.mysql的数据类型

3.1 常用的数据库类型

MySQL结构以及数据管理(增删改查)_第2张图片

CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

字节大小:

char无论是否有值,都会占用固定长度的字节大小,保存在磁盘上都是n字节。
varchar在保存字符时,默认会加一个隐藏的结束符,因此结束符会多算一(n+1)个字节。

 

优劣比较:

varchar比char节省磁盘空间。
但varchar类型的数据读写速度比char慢,因为char是连续的磁盘空间,而varchar在多次增删改查中会产生一些磁盘空间碎片

4.mysql的数据库结构

4.1 查看库信息 


## 查看数据库信息

 show database

MySQL结构以及数据管理(增删改查)_第3张图片

4.2 查看表信息

查看数据库中的表信息

use 数据库名   #切换到书库中

show tables

show tables in LAKERS;

显示数据表的结构(字段)

describe user;

MySQL结构以及数据管理(增删改查)_第4张图片

显示数据表的结构(字段)

describe user;


#############​​​​​​
Field:字段名称
type:数据类型
Null :是否允许为空
Key :主键
Type:数据类型
Null :是否允许为空
key :主键
Default :默认值a :扩展属性,例如:标志符列(标
Extr识了种子,增量/步长)1 2
id:1 3 5 7

MySQL结构以及数据管理(增删改查)_第5张图片

5.SQL 语句

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

5.1 SQL语言分类:

  • DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
  • create
    drop
    alter
    
    
    创建新的数据库
    CREATE DATABASE 数据库名;
    
    创建新的表
    CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
    #主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
    
    CREATE DATABASE kgc_school;
    USE kgc_school;
    CREATE TABLE KY13 (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT'', PRIMARY KEY (id));
    DESC KY13;
    
    #NOT NULL   不允许为空值
    #DEFAULT''  默认值为空
    
    PRIMARY KEY :主键一般选择没有重复并且不为空值的字段
    
    删除指定的数据表
    use 数据库名
    DROP TABLE 表名
    
    DROP TABLE [数据库名.] 表名;
    #如不用USE进入库中,则需加上数据库名
    
    
    删除指定的数据库
    DROP DATABASE 数据库名;
  • DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
insert 
update
delete

格式:
INSERT INTO 表名(字段1,字段2[,...]) VALUES (字段1的值,字段2的值,...);

示例:
INSERT INTO KY13  (id,name,score,passwd) values(1,'zhangsan',70.5,PASSWORD('123456'));
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示:若不使用PASSWORD(),查询时以明文显示。

INSERT INTO zzz VALUES(2,'lisi',90.5,654321) ;
SELECT * FROM zzz ;      #查询表的数据记录
----------------------------------------------------------------------------------------
#修改、更新数据表中的数据记录
格式:
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];

示例:
UPDATE zzz SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE zzz SET name='wangxiaoer',passwd='' WHERE id=3;


在数据表中删除指定的数据记录
格式:
DELETE FROM 表名 [WHERE 条件表达式];

示例:
DELETE FROM zzz WHERE id=4;
  • DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
select

格式:
SELECT 字段名1,字段名2[,...] FROM 表名[WHERE 条件表达式];

示例:
SELECT * FROM zzz;
SELECT id,name,score FROM zzz WHERE id=2;
select name from zzz\G  		 #以列表方式竖向显示
select * from info limit 2;   	 #只显示头2行
select * from info limit 2,3;     #显示第2行后的前3行

#修改、更新数据表中的数据记录
格式:
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];

示例:
UPDATE zzz SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE zzz SET name='wangxiaoer',passwd='' WHERE id=3;



数据表高级操作


扩展
在数据表中删除指定的数据记录
格式:
DELETE FROM 表名 [WHERE 条件表达式];

示例:
DELETE FROM zzz WHERE id=4;
  • DCL:数据控制语言,用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限 和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)
ALTER TABLE 旧表名 RENAME 新表名;

例:
ALTER TABLE zzz RENAME yyy;
ALTER TABLE yyy RENAME zzz;

扩展表结构(增加字段)
ALTER TABLE 表名 ADD address varchar(50) default '地址不详';
#default '地址不详':表示此字段设置默认值为地址不详,可与NOT NULL配合使用
ALTER TABLE yyy ADD address varchar(50) NOT NULL default '地址不详';

修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
unique key:唯一键(特性:唯一,但可以为空,空值只允许出现一次)
Primary key:唯一且非空(主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。)


ALTER TABLE yyy CHANGE name user_name varchar(10) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。

ALTER TABLE 表名 modify column 字段名 类型。
数据库中表 字段是varchar(30),修改类型可以用(谨慎修改类型,可能会导致原有数据出错)


删除字段
格式:
ALTER TABLE 表名 DROP 字段名;

示例:
ALTER TABLE yyy DROP passwd;

你可能感兴趣的:(数据库,运维,架构,mysql,数据结构)