Mysql数据库(一)

数据库管理:

数据库运维

sql语句数据库用来增删改查的语句

备份 数据库的数据进行备份

主从复制、读写分离、高可用

数据库的概念和相关的语法和规范:

数据库:组织,存储,管理 数据的仓库

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

mysql

oracle 大数据系统一般使用

sql-server

MariaDB 也是mysql 服务名mysqld

postgreSQL 大象数据库

关系型数据库:

mysql oracle postgreSQL

数组存储结构:二维的表格 行 和 列

列:对象,字段

行:对象的信息,字段的属性

行+列 组成 一张表

关系型数据库 优缺点

关系型 优点:表的结构清晰,逻辑容易整理,记录的数据比较完整

缺点:读写速度比较慢,并发量差,数据迁移比较麻烦

每个表都是关联的

非关系型数据库:

缓存型数据库:redis

索引型数据库:ES

文档型数据库:MongoDB

键值对形式存储的结构 key value

非关系型数据库 优缺点

非关系型 优点:高并发速写,对海量数据依旧可以保持高效率的存储和访问,架构可扩展

缺点:键值对形式存储,数据逻辑比较复杂,数据是保存在缓存(内存)当中(redis) 如果意外重启所有数据都会丢失

mysql数据类型

char:固定长度的字符类型,用于存储固定长度的字符串

varchar:可变长度的字符类型,存储的是可变长度的字符串

char定义好了长度之后,无论写的值是多少,都会占用固定字节大小,保存在磁盘上都是4字节

varchar在保存字符串时,多少就保存多少,在保存的字符串结尾默认有一个隐藏的结束符,会多占一个字节

varchar比char要节约磁盘空间,但是char比varchar读写性能好,char是连续的磁盘空间,保存的内容是连续的;varchar在增删改查之后会产生一个磁盘空间碎片文件,影响读写性能

int 整数

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

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

date 用于存储日期 YYYY-MM-DD 年月日

datetime 存储日期和时间 YYYY-MM-DD HH:MM:SS 年月日时分秒

timestamp 和datetime类似,但可以自动记录当前时间

smallint 存储小整数

bigint 大整数

decimal(5,2) 存储精度的浮点数 5表示总位数,2表示小数位数

数据库的管理:增删改查 sql语句

sql名词:

数据库 database

表 table

行 row

列 column

索引 index

视图 view

用户 user

权限 privilege

存储过程 procedure

存储函数 function

调度器 event

sql语言规范:

数据库系统中,sql语句不区分大小写 建议用大写

sql语句可以分多行来写,但是必须要;结尾

命名规范:库名,表名,列名 必须以字母开头,后面可以加数字、特殊符号

不要使用mysql的保留字,table;select;show等等 做名字

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

sql语言的分类:

1.DDL 数据库定义语言 创建数据库的对象语言,库,表,索引等

create drop

2.DML数据库操作/管理语言 对表里的数据进行管理

select update insert delete

3.DQL数据库查询语言 数据库查询语句 select

4.DCL数据控制语言 控制和管理数据库用户的角色和权限 grant 赋权 revoke取消权限

5.TCL事务控制语句,管理数据库的事务,脚本开发,存储过程

commit rollback savepoint

数据库基本操作

创建数据库

CREATE DATABASE xxx;

创建表

CREATE TABLE student (

id int(4) not null,

name char(10) not null,

score decimal(5,2)

);

删除表

DROP TABLE student;

插入数据

INSERT into student(id,name,score) values(1,'小王',87.6);

查看表结构

desc student;

更新表数据

UPDATE student set score=66.6 where id = 3;

删除表数据

DELETE FROM student WHERE id=2;

查询语句

SELECT name,score FROM student;

查询指定行 0,2代表前两行

SELECT * FROM student LIMIT 0,2;

去重查询

SELECT DISTINCT name from student;

条件查询

SELECT * FROM student WHERE id=7 AND score=99;

模糊查询

SELECT * FROM student WHERE name LIKE '%明%';

修改表、表结构

ALTER TABLE student RENAME stu01; 修改表名

ALTER TABLE stu01 ADD address VARCHAR(50) DEFAULT '不详'; 添加列

ALTER TABLE stu01 MODIFY COLUMN address CHAR(30); 修改列数据类型

ALTER TABLE stu01 CHANGE COLUMN address addresses VARCHAR(20); 修改列名和数据类型

ALTER TABLE stu01 DROP addresses; 删除列

相关推荐
White_Mountain9 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
老王笔记9 小时前
GTID下复制问题和解决
mysql
Lojarro11 小时前
【Spring】Spring框架之-AOP
java·mysql·spring
TianyaOAO11 小时前
mysql的事务控制和数据库的备份和恢复
数据库·mysql
Ewen Seong11 小时前
mysql系列5—Innodb的缓存
数据库·mysql·缓存
W215513 小时前
Liunx下MySQL:表的约束
数据库·mysql
nbsaas-boot14 小时前
探索 JSON 数据在关系型数据库中的应用:MySQL 与 SQL Server 的对比
数据库·mysql·json
奥顺14 小时前
PHPUnit使用指南:编写高效的单元测试
大数据·mysql·开源·php
苹果醋316 小时前
SpringBoot快速入门
java·运维·spring boot·mysql·nginx
ROCKY_81716 小时前
Mysql复习(一)
数据库·mysql