MySQL知识点

MySQL知识点_第1张图片
MySQL知识点_第2张图片
默认端口号3306

启动/关闭MySQL数据库


cmd命令行

MySQL知识点_第3张图片
MySQL知识点_第4张图片
MySQL知识点_第5张图片
MySQL知识点_第6张图片
MySQL知识点_第7张图片
MySQL知识点_第8张图片
MySQL知识点_第9张图片
MySQL知识点_第10张图片
MySQL知识点_第11张图片

后面的CHARACTER为数据库的编码方式设置,否则的话按照数据库本身的默认编码方式;

MySQL知识点_第12张图片
MySQL知识点_第13张图片
MySQL知识点_第14张图片
MySQL知识点_第15张图片
MySQL知识点_第16张图片
MySQL知识点_第17张图片
MySQL知识点_第18张图片
MySQL知识点_第19张图片

其中,DATE一般表示日期范围:1000.01.01~9999.12.31;

DATETIME:1000.01.01 00:00:00~9999.12.31 23:59:59;

TIMESTAMP时间戳:1970年1月1日零点~2037年

MySQL知识点_第20张图片

其中,CHAR类型表示定长的字符型,对于没达到该长度的字符,用空格补齐;

VARCHAR表示变长的字符型;


==================1  创建数据表 CREATE   ==================


MySQL知识点_第21张图片
MySQL知识点_第22张图片

使用USE命令打开一个数据库;使用SELECT DATABASE();命名查看当前打开的数据库,如上图所示;

MySQL知识点_第23张图片

=2=查看数据表


MySQL知识点_第24张图片

=3=查看数据表的列(字段)信息



MySQL知识点_第25张图片

=4=向表中插入行(记录)信息


MySQL知识点_第26张图片

=5=查找相应的记录信息


MySQL知识点_第27张图片

=6=字段的相关约束



MySQL知识点_第28张图片
空与非空
MySQL知识点_第29张图片
自动编号约束
MySQL知识点_第30张图片
主键约束

自动编号约束必须与主键约束同时使用,而主键约束可以独自使用;且主键约束一张表只能有一个,且不能为空值;

MySQL知识点_第31张图片
唯一约束

唯一约束一张表可以有多个,可以为空值

MySQL知识点_第32张图片
默认值约束

======约束======



MySQL知识点_第33张图片

对于表级约束和列级约束的划分:由受约束的字段数目决定;如果约束只涉及一列,则为列级约束;如果涉及两列及以上的,则为表级约束;

MySQL知识点_第34张图片
外键约束
MySQL知识点_第35张图片

当某一列设置了主键约束,则MySQL会自动为其创建索引;

在创建了外键约束之后,如果父表进行了插入删除等操作,对于子表是否也会进行相应的操作?

MySQL知识点_第36张图片
MySQL知识点_第37张图片

其中,NOT NULL和DEFAULT约束只有列级没有表级


===================  2 修改数据表  ALTER  ==================


MySQL知识点_第38张图片

first位于最前面,没有【】里面的时候则该新添加的列位于最后面


===============增加列用ADD关键字=====================



MySQL知识点_第39张图片



===================删除列用DROP关键字====================


MySQL知识点_第40张图片
MySQL知识点_第41张图片
添加主键约束
MySQL知识点_第42张图片
添加唯一约束
MySQL知识点_第43张图片
添加外键约束

======添加默认约束用SET关键字  删除默认约束用DROP关键字======

MySQL知识点_第44张图片
MySQL知识点_第45张图片
MySQL知识点_第46张图片
MySQL知识点_第47张图片

==================修改列信息用MODIFY关键字================

MySQL知识点_第48张图片

==========关键字CHANGE可以同时修改列名称和列定义============

MySQL知识点_第49张图片

=================修改表名称RENAME关键字==================

MySQL知识点_第50张图片

方法二可以同时修改多张表的名称,一般不建议修改表名称和列名称,因为在涉及视图和存储过程中,如果有对表名称和列名称的引用时,该修改会导致程序出错。

MySQL知识点_第51张图片

=========对数据表中的记录的操作——增、删、改、查========

INSERT插入记录的三种方式:


1》普通插入——VALUES| VALUE关键字

MySQL知识点_第52张图片

2》INSERT-SET插入方式(使用子查询)

MySQL知识点_第53张图片

3》INSERT-SELECT插入方式(将查询结果插入到指定数据表中)

MySQL知识点_第54张图片

对于设置为“自增”的字段,可以用NULL或者DEFAULT关键字表示值,从而不用赋值就可以遵守自增的要求;

对于其他的字段,可以是NULL/DEFAULT/或者是表达式(多条记录)或者函数(只能插入一条记录)

UPDATE更新记录


MySQL知识点_第55张图片

当无WHERE 条件时,将对所有记录进行更新,否则对某些特定记录进行更新;

DELETE删除记录


MySQL知识点_第56张图片

SELECT查找记录


MySQL知识点_第57张图片
MySQL知识点_第58张图片

tal_name.*方式可以方便多表查询时,有相同名称的字段,当带上相应的表名时,便于区分;

MySQL知识点_第59张图片
MySQL知识点_第60张图片
MySQL知识点_第61张图片

HAVING后的条件为:聚合函数(例如MAX/MIN/AVG/SUM,永远只有一个返回结果)或者要保证该字段一定要出现在当前SELECT后的语句中,否则会发生SELECT错误;

MySQL知识点_第62张图片
MySQL知识点_第63张图片

=============增删改 属于“写”操作、查 属于“读”操作=============

===========子查询=========

子查询并不是查找,而是所有SQL命令的统称;

MySQL知识点_第64张图片
MySQL知识点_第65张图片
MySQL知识点_第66张图片
MySQL知识点_第67张图片

当子查询返回多个结果时,可用ANY/SOME/ALL修饰,使其只返回一个结果

MySQL知识点_第68张图片
MySQL知识点_第69张图片
MySQL知识点_第70张图片
MySQL知识点_第71张图片
MySQL知识点_第72张图片

======================多表更新=========================

MySQL知识点_第73张图片
MySQL知识点_第74张图片
MySQL知识点_第75张图片

==========================连 接==========================

MySQL知识点_第76张图片
MySQL知识点_第77张图片
MySQL知识点_第78张图片
MySQL知识点_第79张图片
MySQL知识点_第80张图片
MySQL知识点_第81张图片
MySQL知识点_第82张图片
MySQL知识点_第83张图片
MySQL知识点_第84张图片
MySQL知识点_第85张图片

外链接A表决定B表,A表依赖于任何表,但是唯独不依赖于B表

foreign key是物理连接,而对于事务连接反而是更常用的;外键是将数据分开存储,反过来“连接”是将多张表联系在一起;

MySQL知识点_第86张图片
MySQL知识点_第87张图片

=====================运算符和函数========================


MySQL知识点_第88张图片
MySQL知识点_第89张图片
MySQL知识点_第90张图片

TRIM无法删除中间指定字符,只能删除头部和尾部;

删除前导指定字符——TRIM( LEADING '?' FROM ' ??MySQL???');

删除结尾指定字符——TRIM(TRAILING '?' FROM ' ??MySQL???');

删除所有指定字符——TRIM(BOTH '?'FROM ' ??MySQL???');

MySQL知识点_第91张图片

_(下划线)代表任意一个字符;

%(百分号)代表“任意个”字符;

要想让“%”表示百分号,而不是模式匹配符,可以用LIKE '%1%%' ESCAPE '1';

表示1(1可以是任意的都行,不一定非得为1)后面的百分号%取消通配符的作用,从而表示其原有意思;

MySQL知识点_第92张图片
MySQL知识点_第93张图片

between and表示是否在范围内,而IN表示的是一个集合,某个元素是否在该集合内;

MySQL知识点_第94张图片
MySQL知识点_第95张图片

last_insert_id()要使用时,该表中必须有自动编号的字段,字段名不一定为ID;当同时写入多条记录时,只会返回第一条的ID,而得不到后续记录的ID;

MySQL知识点_第96张图片

聚合函数的特点是只有一个返回值;

MySQL知识点_第97张图片

======================自定义函数=========================


MySQL知识点_第98张图片
MySQL知识点_第99张图片
MySQL知识点_第100张图片

参数与返回值没有必然的内在联系;

返回值必须要有,而参数无要求(但是个数必须小于1024个);

SET NAMES GBK;只会影响客户端的编码方式,不会影响服务器的编码方式;即客户端写汉字为gbk,而写入数据库中时,仍为数据库默认的编码方式;(因为数据库是存在于服务器中)

DELIMITER //;该命令会使得SQL语句以“//”结束;或者可以自行设置其他的字符结束格式;

MySQL知识点_第101张图片
MySQL知识点_第102张图片
MySQL知识点_第103张图片

定义了一个f1函数,无参数;

MySQL知识点_第104张图片

定义了一个F2函数,有2个输入参数;

MySQL知识点_第105张图片

定义复杂的函数体,有BEGIN和END实现;

MySQL知识点_第106张图片


MySQL知识点_第107张图片

=========================存储过程========================

MySQL知识点_第108张图片

SQL语句的执行过程

对于“语法分析”和“编译过程”,是可以省略的,从而优化SQL语句;

进而将一些SQL语句封装成“存储过程”,就可以直接调用编译结果,从内存中执行,从而达到了优化的效果;

MySQL知识点_第109张图片
MySQL知识点_第110张图片
MySQL知识点_第111张图片
MySQL知识点_第112张图片
MySQL知识点_第113张图片
MySQL知识点_第114张图片
MySQL知识点_第115张图片

过程体中的“任意”是有要求的;一般是对记录的“增删改查和多表连接”操作;

MySQL知识点_第116张图片

修改存储过程,只能修改简单的特性;当想要真正修改存储过程内容时,则必须要先删除再重建;

MySQL知识点_第117张图片
MySQL知识点_第118张图片
MySQL知识点_第119张图片

BEGIN和AND之间申明的变量为局部变量,其作用范围只能在函数体BEGIN和AND之间;

@i 这种带@形式的变量,为用户变量,是与数据库的客户端绑定的,只对当前用户所使用的客户端有效;

ROW_COUNT();函数返回被插入、更新、删除的行数;

存储过程一般是针对与整个表的;而函数一般不是用于表,一般与SQL语句混合使用;


MySQL知识点_第120张图片
MySQL知识点_第121张图片
MySQL知识点_第122张图片

存储在数据库内,可以由应用程序通过调用执行,允许用户声明变量,以及进行有条件的执行;

可包含程序流、逻辑、对数据库的查询,可接收参数(三种类型IN/OUT/INOUT);

关系型数据库中数据的存储以表的形式实现,存储引擎也可以称之为表类型;

MySQL知识点_第123张图片
MySQL知识点_第124张图片

处理并发控制是通过“锁”实现的;

MySQL知识点_第125张图片
MySQL知识点_第126张图片
MySQL知识点_第127张图片

锁粒度又称为锁颗粒,是对数据进行锁定时的单位;只需对需要修改的数据精确加锁,而无须对所有数据加锁;

要在锁开销和安全性之间寻求平衡;当锁粒度小,则开销大,然而安全性好;

MySQL知识点_第128张图片

事务是数据库区别于文件系统的重要特征之一;

MySQL知识点_第129张图片
MySQL知识点_第130张图片
MySQL知识点_第131张图片

使用索引可以快速访问数据表中的特定信息,索引是进行记录快速定位的方法;

分为普通索引、唯一索引、全文索引、btree索引、hash索引;

MySQL知识点_第132张图片

MyISAM使用与事务的处理不多的情况;

InnoDB适用于事务的处理较多的情况,需要有外键支持的情况;

其他存储引擎:BlackHole黑洞引擎,写入的数据都会消失,一般用于做数据复制的中继;

MySQL知识点_第133张图片
第一种方法
MySQL知识点_第134张图片
第二种方法
MySQL知识点_第135张图片
第三种方法
MySQL知识点_第136张图片
MySQL知识点_第137张图片
图形化管理工具

你可能感兴趣的:(MySQL知识点)