数据库基础

mysql -u root -p123456

数据库概念和sql语句

数据:数:数字信息 据:属性

对一系列具体属性的描述的集合。

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

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

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

mysql

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

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

数据库的分类:

MySQL:关系型数据库。

非关系型数据库:redis es

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

表:行 列

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

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

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

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

多表关联,最大可以关联几张表?最多三张表(面试题)

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

redis 缓存性的数据库

es:索引型数据库。

文档型:MongDB

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

MySQL数据库的存储引擎:

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

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

支持高并发性能应用。

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

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

事务的特点:

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

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

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

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

数据库的名词:

1,数据库:database

2,表:table 行:row 列:column

3,索引:index

4,视图:view

5,存储过程:procedure

6,触发器:trigger

7,用户:user

8,权限:privilege

MySQL语句的规范:

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

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

关键词是不能换行写

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

字符串只能用'单引号

数据库的命名规则:

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

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

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

数据库的字符类型:

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

char:只能存储固定长度的字符串,

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

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

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

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

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

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

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

datetime:存储日期:yyyy-mm-dd HH:MM:SS

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

重点:

char varchar

char 无论你是否定义了值,都会占用固定长度的字节大小。

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

varchar比char节省空间

但是varchar索引比较慢

都是字符串类型:一定要用单引号。

sql语句的分类

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

CREATE:创建

DROP:删除

ALTER:修改

查看端口

show global variables like 'port';

查看有哪些库

show databases;

使用数据库

use mysql;

查看表

show tables;

如何查看表的结构

describe user;

纵向查看

describe user\G;

简写:

desc user;

新建库

create database chen;

使用库

use chen;

查看表

show tables;

创建表和其中数据:

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

表名cc

列:id,name,sroce

主键 id

删除表

drop table cc;

删除库 (库中的表一起删除)

drop database chen;

子语句可以换行写

create table cc (id int(4) not null,

name varchar(10) not null,

sroce decimal(5,2),

passwd char(48),

primary key(id));

null和空格的区别:

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

空格:也是字符。

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

select

update 更新

insert 添加

delete 删除 对表的内容进行删除

清空表

truncate table cc;

插入数据

insert into cc values(1,'cc1',null,'');

给信息加密

insert into cc values(4,'cc4',62,password('333'));

给原有的信息加密

update cc set passwd=password('333') where id = 3;

推荐id,一般表中用id作为唯一标识

删除指定行

delete from cc where id = 4;

DQL:查询数据。

指定条件去查 where(一般用主键查询)

select * from cc where id = 6;

指定行查看limit

从第二行开始往下2行

select * from cc limit 2,2;

前2行

select * from cc limit 2;

指定列查询

select sroce from cc;

去重查询

select distinct sroce from cc;

所有条件包含在内

修改表的名称

alter table cc rename ch;

修改表的结构

加一列

alter table ch add birth date;

对指定内容更新

update ch set birth=date('2020-1-1') where id = 5;

修改列名

alter table ch change birth birthday datetime;

删除整列

alter table ch drop birthday;

修改字段类型

alter table ch modify column passwd varchar(52);

主要是改char和varchar。

其他语句

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

GRANT 赋予权限

REVOKE 取消权限

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

commit: 确认提交事务

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

savepoint保存点,可以回滚。

相关推荐
yangchanghua1111 小时前
pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)
数据库·pgsql
larance2 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
python_chai2 小时前
从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
数据库·sql·mysql
在努力的前端小白2 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务2 小时前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词
冒泡的肥皂5 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.6 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
薛晓刚9 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队9 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术
星空下的曙光10 小时前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql