MySQL学习个人笔记

1.MySQL数据类型及其简介

整数类型

MySQL学习个人笔记_第1张图片

浮点数类型和定点数类型

MySQL学习个人笔记_第2张图片

M:表示数据的总长度(不包括小数位数)    D:表示小数位数  例如:Decimal(6,2) 1452.89(此为存入的数据)

存入数据的时候,小数点后保留两位多余的需要四舍五入存入

日期和时间类型

MySQL学习个人笔记_第3张图片

字符串类型

MySQL学习个人笔记_第4张图片

二进制类型

MySQL学习个人笔记_第5张图片

2.数据库的一些基本操作:

简介:数据库(Database)是按照数据结构来组织、存储和管理的仓库。

显示所有数据库操作:show databases;

创建数据库语法:Create databases 数据库名称;

删除数据库语法:drop databases 数据库名称;

3.数据库中创建表

MySQL学习个人笔记_第6张图片

MySQL学习个人笔记_第7张图片

查看表基本结构语法:DESCRIBE(DESC)  表名;

查看表详细结构语法:show create table 表名;

修改表名语法:alter table 旧表名称 rename 新表名;

修改字段语法:alter table 表名 change 旧属性名  新属性名 新数据类型;

增加字段语法:alter table 表名 ADD 属性1 数据类型【约束条件】 ;

删除字段语法:alter table 表名 drop 属性名;

删除表语法:drop table 表名;

4.数据库中数据的查询

查询所有字段语法:SELECT 字段1,字段2,字段3...FROM 表名;或 SELECT * FROM 表名;
查询指定字段语法:SELECT 字段1,字段2,字段3...FROM 表名;
Where条件查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 条件;
带IN关键字查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 字段 [NOT] IN(元素1,元素2,元素3);
带BETWEEN AND的查询范围语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 字段[NOT] BETWEEN 取值1 AND 取值2;
带LIKE的模糊查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 字段[NOT] LIKE “字符串”;(“%”代表任意字符,“_”代表单个字符)
空值查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 字段 IS[NOT]NULL;
带AND的多条件查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 条件表达1 AND 条件表达2;
带OR的多条件查询语法:SELECT 字段1,字段2,字段3...FROM 表名 WHERE 条件表达1 OR 条件表达2;
DISTINCT去重复查询语法:SELECT 字段名 FROM 表名;

对所查询的数据结果进行排序语法:SELECT 字段1,字段2,字段3...FROM 表名 ORDER BY 属性名 [ASC|DESC](升序\降序);

GROUP BY分组查询:

MySQL学习个人笔记_第8张图片

LIMIT分页查询语法:SELECT 字段1,字段2,字段3...FROM 表名 LIMIT 初始位置,记录数;

使用聚合函数查询:
COUNT()统计记录条数  SUM()求和函数 AVG()求平均值函数 MAX()求最大值函数
MIN()求最小值函数 它们都分别与GROUP BY关键字一起使用。

连接查询:
内连接查询:连接查询两个或两个以上的表。
外连接查询:可以查出一张表所有的信息 
外链接查询语法:SELECT 属性名列表 FROM 表名1 LEFT|RIGHT JOIN 表名2 ON 表名1.属性名1=表名2.属性名2;
左链接查询:可以查表1所有记录,但是只能查出表2匹配记录.
右链接查询:可以查表2所有记录,但是只能查出表1匹配记录.
多条件连接查询:可以查询多个条件下的指定数据


子查询:
带IN关键字子查询:一个语句查询条件可能存在另一个SELECT语句的查询结果。
带比较运算符子查询:子查询可以使用比较运算符(>,<);
带Exists关键字查询:若子查询查询到记录,那么进行外查询,否则,不执行外查询。
带ANY关键字查询:ANY表示查询满足其中任意一个条件的数据。
带ALL关键字查询:表示满足所有条件的查询。


合并查询:
UNION:数据库系统将所有查询结果合并到一起并且去除重复的记录。
UNION ALL:数据库系统将所有查询结果合并到一起但是不去除重复的记录。


为表和字段取别名:
为表取别名语法:SELECT * FROM 表名 表的别名 WHERE 表别名.id=n(条件);

为字段取别名: SELECT 字段名  AS 字段别名 FROM 表名 Where (条件)(例如:SELECT t.bookName AS bName FROM t_book t WHERE t.id=1;);

5.数据的插入,更新,删除。
给表的所有字段插入数据语法:INSERT INTO 表名 VALUES(数据1,数据2,数据3...数据n);
给表指定字段插入数据: INSERT INTO 表名(属性1,属性2,属性3...属性n) VALUES(数据1,数据2,数据3...数据n);
同时插入多条数据语法:INSERT INTO 表名 [(属性列表)]
                                       VALUES(插入数据1),(插入数据2)
                                        ......
                                        (插入数据n);
(例如:INSERT INTO t_book(id,bookName,price,author,bookTypeId) VALUES (NULL,'我爱祖国2',20,'小誉',1),(NULL,'我爱祖国3',20,'小黑',1);)

删除数据语法:DELETE FROM 表名 [WHERE 条件];

6.索引
索引定义:索引是数据库中一列或者多列组合而成的,作用是提高对表中数据的查询的速度。
优点:提高了查询数据的速度。 缺点:创建和维护索引的时间增加了。

索引分类:

MySQL学习个人笔记_第9张图片

创建表的同时创建索引格式:

MySQL学习个人笔记_第10张图片

在已存在表上创建索引:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 ON 表名 (属性名[(长度)][ASC|DESC]);
用ALTER TABLE创建索引:ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (属性名[(长度)][ASC|DESC]);

删除索引:DROP INDEX 索引名 ON 表名;

7.视图

视图基本介绍:


视图的作用:


创建视图:

MySQL学习个人笔记_第11张图片

查看视图基信息语法:DESCRIBE 或者  SHOW TABLE STATUS 
查看视图详细信息语法:SHOW CREATE VIEW
在views表中查看试图详细信息:直接利用表查看

CREATE 或者 REPLACE VIEW语句修改视图:


ALTER创建视图语法:


插入、更新、删除视图:


删除视图:


8.触发器

触发器定义:


创建只有一个执行语句触发器:


创建有多个执行语句触发器:

MySQL学习个人笔记_第12张图片

查看触发器语法:SHOW TRIGGERS 或者直接数据库triggers中查看

删除触发器语法:DROP TRIGGER;

9.日期、时间、字符串、数学、加密等函数的运用


CURDATE();返回当前日期;
CURTIME();返回当前时间
MONTH(d);返回日期d中的月份值(1-12月)
CHAR_LENGTH(s);计算字符串s的字符数
UPPER(s);把所有字母变成大写字母
LOWER(s);把所有字母变成小写字母
A BS(x);求绝对值
SQRT(x);求平方根
MOD(x,y);求余数
PASSWORD(str);一般对用户的密码加密 不可逆
MD5(str);普通加密  不可逆
ENCODE(str,pswd_str);加密函数结果为二进制数,必须用BLOB类型字段来保存他

DECODE(crypt_str,pswd_str);解密函数

10.存储过程和函数(下列xx_xxx的代表创建的存储过程的名称)

存储过程和函数定义:


创建存储过程:

MySQL学习个人笔记_第13张图片

创建存储函数:

MySQL学习个人笔记_第14张图片

变量的使用:
定义变量的语法:DECLARE var_name[...] type[DEFAULT value]
为变量赋值语法:SET var_name=expr...

SELECT col_name INTO var_name FROM table name WHERE condition

游标使用:

游标的定义:


声明游标语法:DECLARE cursor_name CURSOR FOR select_statement;
打开游标语法:OPEN cursor_name;
使用游标语法:FETCH cursor_name INTO var_name;

关闭油表语法: CLOSE cursor_name;

11.流程控制使用

定义:


IF语句的使用:


CASE语句使用:

MySQL学习个人笔记_第15张图片

LOOP,LEAVE 语句使用:

MySQL学习个人笔记_第16张图片

ITERATE语句使用:


REPEAT语句使用:

MySQL学习个人笔记_第17张图片

WHILE语句使用:


调用存储过程语法:CALL sp_name;
调用存储函数语法:fun_name;
SHOW STATUS语句查看存储过程和函数的状态:SHOW STATUS;
SHOW CREATE 语句查看存储过程的函数的定义:SHOW CREATE sp_name;

也可以直接从数据库表中查看存储过程和函数信息 information_scherna.Routines

修改存储过程和函数:

MySQL学习个人笔记_第18张图片

删除存储过程和函数:DROP sp_name;

12.数据备份:数据库备份可以保证数据的安全

使用mysqldump备份数据:


也可以使用数据库直接备份:

mysqldump -u root -p db_book > c:\db_book.sql//备份数据(c:\db_book.sql)这是备份名称或路径
用cdm备份  或者直接文件右键导出   可以备份表或者数据

数据还原:


mysqldump -u root -p db_book > c:\db_book.sql

使用数据库直接数据库导入

你可能感兴趣的:(MySQL)