


启动/关闭MySQL数据库
cmd命令行









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








其中,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年

其中,CHAR类型表示定长的字符型,对于没达到该长度的字符,用空格补齐;
VARCHAR表示变长的字符型;
==================1 创建数据表 CREATE ==================


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

=2=查看数据表

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

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

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

=6=字段的相关约束



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

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


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

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


当某一列设置了主键约束,则MySQL会自动为其创建索引;
在创建了外键约束之后,如果父表进行了插入删除等操作,对于子表是否也会进行相应的操作?


其中,NOT NULL和DEFAULT约束只有列级没有表级
=================== 2 修改数据表 ALTER ==================

first位于最前面,没有【】里面的时候则该新添加的列位于最后面
===============增加列用ADD关键字=====================

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




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




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

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

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

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

=========对数据表中的记录的操作——增、删、改、查========
INSERT插入记录的三种方式:
1》普通插入——VALUES| VALUE关键字

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

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

对于设置为“自增”的字段,可以用NULL或者DEFAULT关键字表示值,从而不用赋值就可以遵守自增的要求;
对于其他的字段,可以是NULL/DEFAULT/或者是表达式(多条记录)或者函数(只能插入一条记录)
UPDATE更新记录

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

SELECT查找记录


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



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


=============增删改 属于“写”操作、查 属于“读”操作=============
===========子查询=========
子查询并不是查找,而是所有SQL命令的统称;




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





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



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










外链接A表决定B表,A表依赖于任何表,但是唯独不依赖于B表
foreign key是物理连接,而对于事务连接反而是更常用的;外键是将数据分开存储,反过来“连接”是将多张表联系在一起;



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




TRIM无法删除中间指定字符,只能删除头部和尾部;
删除前导指定字符——TRIM( LEADING '?' FROM ' ??MySQL???');
删除结尾指定字符——TRIM(TRAILING '?' FROM ' ??MySQL???');
删除所有指定字符——TRIM(BOTH '?'FROM ' ??MySQL???');

_(下划线)代表任意一个字符;
%(百分号)代表“任意个”字符;
要想让“%”表示百分号,而不是模式匹配符,可以用LIKE '%1%%' ESCAPE '1';
表示1(1可以是任意的都行,不一定非得为1)后面的百分号%取消通配符的作用,从而表示其原有意思;


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


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

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

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



参数与返回值没有必然的内在联系;
返回值必须要有,而参数无要求(但是个数必须小于1024个);
SET NAMES GBK;只会影响客户端的编码方式,不会影响服务器的编码方式;即客户端写汉字为gbk,而写入数据库中时,仍为数据库默认的编码方式;(因为数据库是存在于服务器中)
DELIMITER //;该命令会使得SQL语句以“//”结束;或者可以自行设置其他的字符结束格式;



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

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

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


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

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







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

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



BEGIN和AND之间申明的变量为局部变量,其作用范围只能在函数体BEGIN和AND之间;
@i 这种带@形式的变量,为用户变量,是与数据库的客户端绑定的,只对当前用户所使用的客户端有效;
ROW_COUNT();函数返回被插入、更新、删除的行数;
存储过程一般是针对与整个表的;而函数一般不是用于表,一般与SQL语句混合使用;



存储在数据库内,可以由应用程序通过调用执行,允许用户声明变量,以及进行有条件的执行;
可包含程序流、逻辑、对数据库的查询,可接收参数(三种类型IN/OUT/INOUT);
关系型数据库中数据的存储以表的形式实现,存储引擎也可以称之为表类型;


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



锁粒度又称为锁颗粒,是对数据进行锁定时的单位;只需对需要修改的数据精确加锁,而无须对所有数据加锁;
要在锁开销和安全性之间寻求平衡;当锁粒度小,则开销大,然而安全性好;

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



使用索引可以快速访问数据表中的特定信息,索引是进行记录快速定位的方法;
分为普通索引、唯一索引、全文索引、btree索引、hash索引;

MyISAM使用与事务的处理不多的情况;
InnoDB适用于事务的处理较多的情况,需要有外键支持的情况;
其他存储引擎:BlackHole黑洞引擎,写入的数据都会消失,一般用于做数据复制的中继;





网友评论