![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
自学MySQL
绿皮豚二号
北邮非计算机专业菜狗
展开
-
leetcode刷题 --数据库
我是真的菜,简单还能做,中等就歇b组合两个表:题目链接解题思路:左连接select FirstName, LastName, City, State from person natural left join address;-- 或select FirstName, LastName, City, State from person p left join addres...原创 2020-02-04 18:33:20 · 1091 阅读 · 0 评论 -
MySQL学习笔记(16)--关系型数据库设计范式
·概念范式:Normal Format,符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度范式是离散数学里的概念范式目标是在满足组织和存储的前提下使数据结构冗余最小化范式级别越高,表的级别就越标准目前数据库应用到的范式有以下几层第一范式:1NF第二范式:2NF第三范式:3NF逆规范化示例1、一张员工表工号姓名...原创 2020-02-03 21:59:53 · 3236 阅读 · 0 评论 -
MySQL学习笔记(15)--事务安全
·概念·事务要做的某个事情计算机中的事务是指某个程序执行单元(写操作)事务安全:当事务执行后,保障事务的执行是有效的,而不会导致数据错乱事务安全通常针对的是一连串操作(多个事务)而产生的统一结果MySQL中默认的写操作是直接写入的执行写操作SQL同步到数据表示例银行转账:从A账户转账到B账户创建数据表create table bank( id ...原创 2020-02-03 21:51:37 · 314 阅读 · 0 评论 -
MySQL学习笔记(14)--视图
·概念view,一种由select指令组成的虚拟表视图是虚拟表,可以使用表管理(结构管理)为视图提供数据的表叫做基表# 创建视图create view 视图名字 as select指令;# 访问视图:一般都是查询select */字段名 from 视图名字;视图有结构,但不存储数据结构:select选择的字段数据:访问视图时执行的select指令步骤...原创 2020-02-03 20:53:50 · 474 阅读 · 0 评论 -
MySQL学习笔记(13)--预处理
·概念prepare statement,一种预先编译SQL指令的方式 (然后命令执行)预处理不同于直接处理,是将要执行的SQL指令先发送给服务器编译,然后通过指令执行●发送预处理: prepare 预处理名字 from '要执行的SQL指令'●执行预处理: execute 预处理名字预处理管理●预处理属于会话级别:即当前用户当次连接有效 (断开会被服务器清理掉)●删除预处理:de...原创 2020-02-03 15:34:09 · 354 阅读 · 0 评论 -
MySQL学习笔记(12)--数据备份与还原
·概念备份: backup将数据或者结构按照一定的格式存储到另外一个文件中,以保障阶段数据的完整性和安全性将当前正确数据进行数据保存备份通常是有固定的时间节点(服务器压力小的时候)还原: restore在当前数据出问题的情况下,将之前备份的数据替换掉当前数据,保证系统的持续、正确的运行基于备份进行数据还原备份还原不一定能够保证所有损失挽回·表数据备份与还原·表数据备份...原创 2020-02-02 16:15:07 · 458 阅读 · 0 评论 -
MySQL学习笔记(11)--外键
·概念foreign key,外面的键(键不在自己表中):如果A表中有一个字段(非主键)指向B表的主键,那么将该子段称之为外键。A表被称为从表,B表被称为主表。·外键操作·增加外键1.创建表的时候增加外键[constraint `外键名`] foreign key (外键字段) references 主表(主键)--实例create table my_foreign( id in...原创 2020-02-01 20:13:20 · 405 阅读 · 0 评论 -
MySQL问题总结(持续更新)
1.添加新用户准备创建一个新用户的时候报错了 The MySQL server is running with the --skip-grant-tables option so it cannot execute this statementcreate user 'username'@'%' identified by 'password'; 解决方法:先刷新一下权限表再重新执行即...原创 2020-02-01 15:53:47 · 451 阅读 · 0 评论 -
MySQL学习笔记(10)--用户权限管理
·概念在不同的项目中给不同的角色(开发者)不同的操作权限,为了保证数据库数据的安全。通常一个用户的密码不会长期不变,所以需要经常变更密码。·用户管理MySQL需要客户端进行连接认证才能进行服务器操作,需要用户信息。MySQL中所有的用户信息都是保存在MySQL数据库下的user表中select * from mysql.user; --host:允许访问的客户端(ip或者主机地...原创 2020-02-01 17:13:37 · 1717 阅读 · 0 评论 -
MySQL学习笔记(9)--子查询
·概念子查询sub query,查询是在某个查询结果之上进行的(一条select语句内部包含了另外一条select语句),被嵌入的select语句称为子查询语句。主查询主要的查询对象,第一条select语句,确定了用户所有的数据目标(数据源),以及要具体得到的字段信息。关系子查询是嵌入主查询中的子查询是辅助主查询的:要么作为条件,要么作为数据源子查询可以独立存在:是一条完整的se...原创 2020-01-31 21:58:07 · 2917 阅读 · 1 评论 -
MySQL学习笔记(8)--连接查询
·概念将多张表连在一起查询(会导致记录数行和字段数列发生改变)意义:在关系型数据库设计过程中,实体与实体之间是存在很多联系的。在关系型数据库表的设计过程中,遵循着关系来设计:一对一,一对多,多对多。通常在实际操作中,需要利用这层关系来保证数据的完整性。·交叉连接将两张表的数据与另外一张表彼此交叉(笛卡尔积)表1 cross join 表2--实例select * from my_...原创 2020-01-31 18:22:11 · 542 阅读 · 0 评论 -
MySQL学习笔记(7)--联合查询
·基本概念联合查询是合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个查询结果组合到一起,使用union 或者union all。就是将多个查询的结果合并到一起(纵向合并),字段数不变,多个查询的记录数合并·应用场景一张表中不同的结果(需要对应多条查询语句来实现),合并到一起展示数据(男生身高升序排序,女生身高降序排序)最常见的情况:在数据量大的情况下,会对...原创 2020-01-31 12:14:24 · 1656 阅读 · 3 评论 -
MySQL学习笔记(6)--高级数据操作
·新增数据·多数据插入insert into 表名 [(字段列表)] values (值),(值),(值);·主键冲突create table my_student( stu_id varchar(10) primary key, stu_name varchar(10) not null);insert into my_student values('stu0001...原创 2020-01-31 11:58:17 · 364 阅读 · 0 评论 -
MySQL学习笔记(5)--运算符
·算术运算符通常用于结果运算(select 字段中)create table my_int( a int, b int, c int, d int );insert into my_int values(1,-1,0,default);select a + b, a - b, a * b, a / b, a / c, d / b from my_int;...原创 2020-01-31 01:57:17 · 211 阅读 · 0 评论 -
MySQL学习笔记(4)--表关系
·一对一一张表中的一条记录与另外一张表中最多有一条明确的关系:通常,此设计方案是保证两张表中使用同样的主键即可常用信息表:学生ID(PRI)姓名年龄性别2016213097不常用信息表:学生ID(PRI)籍贯婚否住址2016213097·一对多在“多”关系的表中维护一个字段,这个字段是“一”关系的主键母亲表...原创 2020-01-31 01:49:40 · 151 阅读 · 0 评论 -
MySQL学习笔记(3)--列属性(字段属性)
·简单属性·null代表字段为空·默认值defaultcreate table my_default( name varchar(10) not null, --不能为空 age int default 18 --默认值改成18)charset utf8;insert into my_default values('jack',default);·列描述...原创 2020-01-31 01:37:38 · 261 阅读 · 0 评论 -
MySQL学习笔记(2)--列类型
·整数类型·tinyint迷你整形,一个字节保存,最大是255MySQL默认给整形增加负数(-128->127)·smallint小整形,两个字节保存,最大值65535·mediumint中整形,三个字节保存·int整形,四个字节保存·bigint大整形,八个字节保存·无符号标识设定(unsigned)alter table teacher add age int ...原创 2020-01-31 01:25:07 · 1775 阅读 · 0 评论 -
MySQL学习笔记(1)--SQL基本操作
·库操作·创建数据库create database 数据库名字 [库选项];库选项:数据库的相关属性字符集:charset 代表着当前数据库下的所有表储存的数据默认指定的字符集(如果当前不指定,那么采用DBMS默认的)校对集:collatecreate database 数据库名字 charset 字符集名字;·显示数据库·显示全部show databases;·显示部...原创 2020-01-31 00:59:14 · 248 阅读 · 0 评论