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; 删除列

相关推荐
小刘要进步2 分钟前
MySQL指令大全
数据库·mysql
Marchwho24 分钟前
面试—MySQL
java·数据库·mysql
雅冰石1 小时前
Mysql查看锁阻塞信息
数据库·mysql
一休哥助手1 小时前
深入解析MySQL索引的使用及优化
数据库·mysql
SZ1701102311 小时前
mysql创建新表,同步数据
数据库·mysql
神仙别闹1 小时前
基于Java+Mysql实现(WEB)宿舍管理系统
java·前端·mysql
ID_云泽4 小时前
深度解读MySQL意向锁的工作原理机制与应用场景
数据库·mysql·意向锁
codelife3214 小时前
如何保证Redis和MySQL两者之间数据的一致性
数据库·redis·mysql
Flying_Fish_roe4 小时前
mysql性能优化-云服务与数据库即服务(DBaaS)优化
数据库·mysql·性能优化
碎像5 小时前
SpringBoot + MySQL + MyBatis 实操示例教学
spring boot·mysql·mybatis