数据库概念和sql语句

数据库的概念:

进入数据库的奇妙世界:mysql -u root -p123456

数据库是一个系统,是一个人机系统。由硬件、OS操作系统、数据库、DBMS和数据库的 用户共同组成。

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

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

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

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

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

数据库工作流程图:

数据库的分类:

关系型数据库:mysql

非关系型数据库:redis、es

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

表:行和列

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

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

mysql:中小型的数据并发请求

oracle:高并发大数据量

sql-server

mariaDB

postgresql

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

面试题:多表关联最多可以关联几张表?

多表关联最多三张表

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

redis:缓存性的数据库

es:索引型数据库

MongoDB:文档型数据库

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

mysql数据库:

mysql数据库的存储引擎:

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

5.6之后:引擎是innodb,可以支持事务,外键,行级锁定的存储引擎。并且支持高并发性能的应用

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

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

事务的特点:

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

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

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

持久性:事务一旦提交,他所做的所有修改会被永久的保存在数据库中。即使系统崩溃提交的数据也不会丢失。确保数据库的状态始终处于一致性的状态。确保数据的完整和一致

mysql的名词:

数据库:database

表:table 行:row 列:column

索引:index

视图:view

存储过程:procedure

触发器:trigger

用户:user

权限:privilege

mysql语句的规范:

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

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

关键词不能跨行或者简写。

子语句通常位于独立行,便于编辑,提高可读性

不支持双引号,只能用单引号

数据库的命名规则:

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

不能使用mysql的保留字来命名表或者数据库:table select

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

数据库的字符类型:

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

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

varchar:可变长度的字符类型,存储可变长度的字符串(不是无限制的随便写)

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

double:浮点类型(m,d):双精度浮点数,存储浮点数,m也是总位数,d表示小数位

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

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

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

data:存储日期:YYYY-MM-DD

datatime:存储日期 YYYY-MM-DD HH:MM:SS

timestamp:和datatime格式一致YYYY-MM-DD HH:MM:SS 可以自动更新为当前时间戳

重点:char varchar的区别

char:无论你是否定义了值,他都会占用固定长度的字节大小(你写了长度8,无论你写几个(不能大于8)他都是8个字符)

varchar:在保存时,varchar长度14,实际长度是5,那么占用情况就是5+1个隐藏符最后占用的字符是6个

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

varchar和char都是字符串类型:一定要用单引号引起来

数据库管理

sql语句:

sql语句的分类:

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

CREATE:创建

DROP:删除

ALTER:修改

数据库基础常用命令:

show global variables like 'port';

数据库当前使用的端口查看:3306

show databases;

查看当前有多少库

use 库名;

使用指定数据库

show tables;

查询指定库中有哪些表

如何查看表的结构:

describe 表名;

纵向查看表:

describe 表名\G; 缩写:desc 表名\G;

创建库:

create database 库名;

在库中创建表:

create table 表名 表内容属性...

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

创建表:

id int(4) not null

第一列:名字是id,字符类型是int ,(4)字符长度是4,not null不能为空

name varchar(12) not null

第二列:名字是name,字符类型varchar, (12)字符长度是12,not null不能为空

sroce decimal(5,2)

第三列:名字是sroce,字符类型是decimal , (5,2)总长度是5,小数点后面最多2位,可以为空

passwd char(48)

第四列:名字是passwd,字符类型是char ,(48)字符长度最多为48,可以为空

primary key(id)

primary key 主键 (id)将id作为主键,唯一标识

主键用于唯一标识表中的每一条数据。不能重复, 不能为空。

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

删除表:

drop tables 表名;

删除库:

drop database 库名;

类型 数据类型 值是否能为空 键值 默认值是否能为空 扩展信息

null和空格的区别:

两个概念

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

空格:也是字符

鉴别是空格还是null

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

select查询

update更新

insert添加

delete删除(对表内容进行删除操作)

往表中插入数据:

方法一:指明插入的对象和插入的值

insert into表名(类型) values(对应的值)

insert into test (id,name,sroce,passwd) values(1,'刘备',97,'111');

方法二:直接按表格对象的顺序插入值

insert into test values(2,'关羽',99,'222');

对对象的密码进行加密:

password ('xxx')

对表中内容进行更新修改:

update 表名 set 对象=修改内容 where id

where id 是因为id是主键,唯一标识,不会重复查询没有歧义

如何在表中删除数据:

DQL:查询数据记录(重点)

指定查看行:

limit 3:指定查看前三行

limit 2,4:指定从第3行开始往下查看4行

去重查看:

select distinct 对象 from 表名;

指定对象去重

多条件去重查询:

select distinct name,sroce from test;

修改表名:alter

alter table test rename demo;

修改表的结构:

插入新的对象:

alter table 表名 add 对象信息;

修改列对象名:

alter table test change birth birthday datetime;

删除整列:

alter table test drop birthday;

修改列的数据类型:

DCL:数据控制语言

用于设置或者更改数据库用户或者用户的权限

GRANT:赋权

REVOKE:取消权限

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

commit:确认提交事务

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

savepoint:保存点,可以回滚

相关推荐
2301_8135995528 分钟前
Go语言怎么做秒杀系统_Go语言秒杀系统实战教程【实用】
jvm·数据库·python
JZC_xiaozhong5 小时前
数据不互通、审批慢?企业多系统智能协同与流程自动化解决方案
运维·自动化·流程管理·流程自动化·数据集成与应用集成·流程监控·流程可视化设计
爱学习的小囧5 小时前
ESXi 8.0 原生支持 NVMe 固态硬盘吗?VMD 配置详解教程
linux·运维·服务器·esxi·esxi8.0
NCIN EXPE5 小时前
redis 使用
数据库·redis·缓存
MongoDB 数据平台5 小时前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路5 小时前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家5 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE5 小时前
开启mysql的binlog日志
数据库·mysql
坚持就完事了5 小时前
Linux中的变量
linux·运维·服务器
hERS EOUS5 小时前
nginx 代理 redis
运维·redis·nginx