MYSQL数据库的概念和sql语句

数据是什么

数:数字信息

据:属性或某种凭据

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

数据库是什么

数据库:就是用来组织 (按照规则组织起来的) ,存储和管理 (对数据的增、删、改、查) 数据的仓库。

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

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

mysql工作过程和数据流向图:

MYSQL数据库的概念和sql语句_第1张图片

数据库的组成

数据库是一个系统,是一个人机系统、硬件、os操作系统、数据库、DBMS管理系统和数据库的用户。

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

数据库的分类

mysql:关系型数据库

redis:非关系型数据库 es

关系型数据库

存储数据的结构是一个二维表格

表:行 列

行:记录,用来藐视一个对象的信息

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

mysql(中小型的数据库并发请求 免费)

oracle(大数据量还是用它)

sql-server(已淘汰)

maria DB

postgresql

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

非关系型数据库

保存数据不是一张表格。是键值对的形式来保存的。key---->value ky32=12 本身之间没有任何关联

redis:缓存性的数据库

es:索引型数据库

MongDB:文档型数据库

既然有关联查询速度相对来说:

关系型数据库查询速度更慢一些

非关系型数据库可以支持高并发读写。对海量数据依旧保持着高效率的存储和访问。

企业常用的数据库架构形式:

MYSQL数据库的概念和sql语句_第2张图片

MYSQL数据库的存储引擎

5.5之前:MYSAM,不支持事务的外键的存储引擎。适用于读的多,写得好。

2.6之后默认的存储引擎:inodb,可以支持事务可以支持外键,行级锁定的存储引擎。支持高并发性能的应用。

事务

事务:在数据库当中,一个或者多个操作组成的数据操作的序列。这些操作要么全部成功,失败一个就全部不执行。确保数据的一致性和完整性。

事务的特点

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

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

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

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

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

mysql的名词

1、 数据库:database

2、 表:tab 行:row 列:column

3、 索引:index

4、 视图:view

5、 存储过程:procedure

6、 触发器:trigger

7、 用户:user

8、 权限:privilege

mysql的语句规范

在数据库系统中,sql不区分大小写,但是建议大写

语句不区分大小写,表名严格区分大小写

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

换行的规则

关键词不能跨行或者简写

子语句通常位于度路航,便于编辑,提高可读性。

数据库的命名规则

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

不要使用mysql的保留字来命名:table、select 等

数据库名、表名、用户名称 都严格区分大小写

数据库的字符类型

常用的字符类型:

1、 init:占用4个字节。用来存储整数。

2、 char:固定长度的字符串。用来存储固定长度的字符串。

3、 varchar:可变长度的字符类型。用来存储可变长度的字符串。(是无限制的随便写,也要根据类型的长度)

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

5、 duble(m,d):双精度浮点数,存储浮点数,m表示总位数,d表示小数位

6、 text:用于存储大文本数据。文档或者长字符串。

7、 image:二进制存储图像。图片、多媒体等。

8、 decimal(5,2):用于存储固定精度的小数,其中5表示总位数,2表示小数位。

9、 date:存储日期:yyyy-mm-dd

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

11、 timestamp:和datetime格式一致,可以自动更新为当前的时间戳。

重点:

char:' 空格 '固定占4个字节。'ab' 'ab ' 4个字节

varchar:' 空格 '只占用1个字节。 'ab ' 3个字节

MYSQL数据库的概念和sql语句_第3张图片

char:无论你是否定义了值,都会占用固定长度的字节大小。如果设置了8个哪怕只写了4个也算作把8个占满

varchar:在保存时,varchar 14 实际上长度是5 就占用5个,加一个隐藏符一共6个

varchar比char节省磁盘空间但是varchae读写速度比char慢

sql语句的分类

DDL语句

DDL:数据定义语言,用于创建数据库的对象。创建库、表、索引。都属于数据定义语言。CREATE DROP ALTER

CREATE :创建

DROP :删除

ALTER:修改

show global variables like 'port'; 
#查看数据库当前使用的端口

MYSQL数据库的概念和sql语句_第4张图片

show databases;
#查看当前数据库中有多少库

MYSQL数据库的概念和sql语句_第5张图片

use mysql; #使用库

show tables; #查看mysql当中有哪些表

MYSQL数据库的概念和sql语句_第6张图片

describe user;
#查看表结构
desc user;
#简写

MYSQL数据库的概念和sql语句_第7张图片

describe user\G;
#纵向查看
desc user\G;
#简写

MYSQL数据库的概念和sql语句_第8张图片

create database yy; 
#创建库名为yy

show databses; 
#查看有多少库

use yy; 
#查看库yy

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

show databases;

drop tables yy; 
#删表

drop database yy; 
#删库

desc yy; 
#查看表结构

null和空格的区别

null是什么都没有,对象没有任何的描述信息。

空格:也是字符

insert into yy values(1,'zyg',null,' ');

select * from yy where sroce is not null;

DML语句

数据操作语句,对表中的数据进行管理

select:查看表格式
select * from 表名; 
#查看表格式

update:更新
update zyg set passwd=password('000') where id =4 ;

MYSQL数据库的概念和sql语句_第9张图片

insert:添加
insert into zyg (id,name,sroce,passwd) values(1,'章鱼哥',90,'123');

insert into zyg values(2,'章鱼哥2',95,'456');

MYSQL数据库的概念和sql语句_第10张图片

insert into zyg values(4,'章鱼哥4',95,password('666')); 
#加密处理密码

MYSQL数据库的概念和sql语句_第11张图片

delete:删除 对表进行删除操作
delete from zyg where id = 5;

MYSQL数据库的概念和sql语句_第12张图片

DQL语句(面试会问)

查询数据记录

select

select * from zyg where id = 8;

select * from zyg limit 4,7; 
#从第四行开始向下走3行

select * from zyg limit 2; 
#显示前2行

MYSQL数据库的概念和sql语句_第13张图片

select distinct sroce from zyg;
#去重查询。压缩重复的行为1行

select distinct id,name,sroce from zyg;
#id去重

select distinct name,sroce from zyg;
#所有条件去重

select distinct name from zyg;
#name去重

MYSQL数据库的概念和sql语句_第14张图片

alter table 原表名 rename 新表名;
#改表名

alter table zyg add birth date;
#添加新信息

MYSQL数据库的概念和sql语句_第15张图片

update zyg set birth=date('2000-8-24') where id = 3;
#更新信息

alter table zyg change birth birthday datetime;
#更改表信息

alter table zyg drop birthday;
#删除表信息

MYSQL数据库的概念和sql语句_第16张图片

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

MYSQL数据库的概念和sql语句_第17张图片

DCL语句

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

GRANT:赋予权限

REVOKE:取消权限

TCL语句

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

commit:确认提交事务

ROLLBACK:在提交事务之后无法回滚

savepoint:保存点,可以回滚。

思考题

多表关联最多可以关联几张表?

多表关联最多三张表

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