Mysql数据库

1.什么是mysql?

数据:数:数字信息 据:属性 对一系列对象的具体属性的描述的集合

数据库:数据库就是用来组织(各个数据之间是有关联,是按照规则组织起来的),存储和管理(对数据的增删改查)数据的仓库。

数据库是企业的重要信息资产,在使用数据库时,要注意(查和增 无所谓 但是删和改要谨慎

数据库管理系统(DBMS):实现对数据的有效组织,管理和存取的系统软件

数据库是一个系统,是一个人机系统,硬件,os数据库,DBMS和数据库的用户共同组成

用户是通过DBMS(各种数据库软件)来对数据库进行操作。

2.数据库的分类

mysql:关系型数据库

redis:非关系型数据库 es

3.关系型数据库

关系型数据库:存储数据的结构是一个二维表格

表:行 列

行:记录,用来描述一个对象信息

列:字段,用来描述对象的一个属性

关系型数据库:mysql(中小类型的数据并发请求 免费) oracle(大数据量还是用他) sql-server mariaDB postgresql

关系型数据库当中,表里面的数据是关联的,表和表之间的数据也是关联起来。

4.非关系型数据库

非关系型数据库:保存不是一张表格,key--------value 键值对来保存数据。

redis:缓存性的数据库

es:索引型数据库

文档型:MongoDB

既然有关联,查询速度相对来说,关系型数据查询速度更慢一些,非关系型数据库可以支持高并发读写。对海量数据依旧保持着高效率的存储和访问。

5.mysql数据库的存储引擎

5.5之前:MYISAM 不支持事物和外键的存储引擎,适用于读的多,写的少。

5.6之后默认的存储引擎:Innodb 可以支持事务,外键,行级锁定的存储引擎

支持高并发性能的应用

6.事务

事务:在数据库当中,一个或者多个操作组成的数据操作的序列

这些操作要么全部成功,失败一个就全部不执行。确保数据的一致性和完整性。

6.1 事务的特点:

原子性。最小的单位,数据库最小工作单元,要么全部执行成功,要么全部不执行,只要有一个操作时间,整个执行的序列都会被回滚,完成的操作也会被撤销

一致性:事务执行前后,数据库的完整性约束不能被破坏。只有在满足所有的约束条件情况下,事务才能被提交

隔离性:事务的执行是相互隔离,一个事务的执行不能受到其他执行事务的干扰,并发事务之间相互隔离,防止数据不一致的情况发生

持久性:事务一旦提交,他所做的所有修改会被永久保存在数据库中。即使系统崩溃,提交的数据也不会丢失。

确保数据库始终处于一致性的状态,确保数据的完整和一致

7.mysql的语句规范

在数据库系统中,sql不区分大小写,但是建议大写。语句不区分,但是表名是严格区别大小写

sql语句可以单行也可以多行书写。但是默认都是以;结尾

关键词不能跨行或者简写

子语句通常位于多行,便于编辑,提供可读性

8.数据库的命名规则

必须已字母开头,后面包含数据,特殊字符:#_$

不要使用mysql的保留字:table select

数据库名 表名 用户名严格区分大小写。

9.数据库的字符类型

int:4个字节,用来存储整数,

char:固定长度的字符串,用来存储定长的字符串

varchar:可变长度的字符类型,存储可变长度的字符串(无限制的可以随便写,也要根据类型的长度)

float (m,d):单精度浮点存储浮点数 ,表示总位数,d表示小数

double(m,b)双精度浮点数,存储浮点数,表示总位数 ,d表示小数

test 用于存储大本文数据,文档,或者长字符串

image 二进制存储图像,图片,多媒体

decimal (5,2)用于存储固定精度的小数,其实5,表示总位数,2表示小位数

date:存储日期yyy-mm-dd

datetime 存储日志 YYY-MM-DD HH:MM:SS

timestamp 和datetime 格式一致,可以自动的更新为当前时间钻

10.sql语句的分类

DDL:数据定义语言,用于创建数据的对象,创建库,表 索引 (对库)

CREATE 创建

DROP 删除

ALTER 修改

DML:数据操作语言,对表中的数据进行管理(对表进行操作)

update 更新

insert 添加

delete 删除

DQL:查询数据记录

select 查看

DCL:数据控制语言,设置或者更改数据库用户或者用户的权限

GRANT 赋权

REVOKE 取消赋权

TCL:事务控制语句,管理数据库当中的事务。

commit 确认提交事务

ROLLBACK,事务提交之后没有办法回滚

savepoint 保存点,可以回滚

11.语句总结

show global variables like 'port'; 查看数据库的端口

show databases; 查看数据库

use mysql;使用mysql数据库

show tables; 查看mysql有哪些表

describe user\G;纵向查看表结构 简写:desc user\G;

create database guoqi;创建数据库

create table guoqi666(id int(4) not null,name varchar(12) not null,sroce decimal(5,2),passwd char(48),primary key(id)); 创建表

select * from guoqi666 查看表的内容

truncate table guoqi666; 清空表的内容

insert into guoqi666 (id,name,sroce,passwd) values(1,'郭旗',90,'123');增加表的内容

insert into guoqi666 values(2,'韩文升','95','456');增加表的内容

insert into guoqi666 values(3,'王浩','91',password('hyde')); 加密处理密码

update guoqi666 set passwd=password('456') where id = 2;加密处理密码

delete from guoqi666 where id = 10;删除表的内容

select * from guoqi666 where id=5;查询表为id-5的内容

select * from guoqi666 limit 3,5;查询4-6行的表的内容

select * from guoqi666 limit 2;查询头两行

select distinct sroce from guoqi666; distinct 去重复

select distinct id,name,sroce from guoqi666;去重复

alter table guoqi666 rename guoqi999;修改表名

alter table guoqi666 add birth date; 表中增加一列

update guoqi666 set birth=date('2020-1-1') where id =6;添加内容

alter table guoqi666 change birth birthday datetime;修改birth为birthday

alter table guoqi666 drop birthday; 删除birthday

alter table guoqi666 modify column passwd varchar(52);修改字段类型

你可能感兴趣的:(数据库,mysql)