数据库基础

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保存点,可以回滚。

相关推荐
清水白石0081 小时前
从一个“支付状态不一致“的bug,看大型分布式系统的“隐藏杀机“
java·数据库·bug
Python私教5 小时前
model中能定义字段声明不存储到数据库吗
数据库·oracle
BestandW1shEs8 小时前
谈谈Mysql的常见基础问题
数据库·mysql
重生之Java开发工程师8 小时前
MySQL中的CAST类型转换函数
数据库·sql·mysql
教练、我想打篮球8 小时前
66 mysql 的 表自增长锁
数据库·mysql
Ljw...8 小时前
表的操作(MySQL)
数据库·mysql·表的操作
哥谭居民00018 小时前
MySQL的权限管理机制--授权表
数据库
wqq_9922502778 小时前
ssm旅游推荐系统的设计与开发
数据库·旅游
难以触及的高度9 小时前
mysql中between and怎么用
数据库·mysql