Mysql数据库学习笔记

Mysql数据库

索引

事务

存储引擎

视图

管理

图片均来自 韩顺平Mysql

数据库

创建数据库 (不加 if not exists创建的库存在会报错,默认字符集utf-8,默认校验规则utf8_general_ci(不区分大小写),utf8_bin(区分大小写),为了规避关键字,可以使用``)

CREATE DATABASE db_name

删除数据库

DROP DATABASE db_name

创建一个使用utf8字符集,并带校对规则的数据库

CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_bin

显示所有数据库

SHOW DATABASES

查看前面创建的数据库的定义信息

SHOW CREATE DATABASE db_name

备份数据库 (在DOS执行命令行)

mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n > 文件名.sql

恢复数据库 (进入到Mysql命令行再执行)

Source 文件名.sql

备份数据库的表

mysqldump -u 用户名 -p 数据库 表1 表2 表n > 文件名.sql

表操作

  • 查看表结构
DESC table_name
  • 修改表名
RENAME TABLE old_name TO new_name
  • 创建表 (fielld:指定列名,datatype:指定列类型(字段类型),字符集,校对规则默认为所在数据库字符集)
CREATE TABLE table_name
(
	field1 datatype,
	field2 datatype
)CHARACTER SET 字符集 COLLATE 校对规则 ENGINE 引擎
  • 修改表字符集
ALTER TABLE table_name CHARACTER SET new_charset

列操作

  • Mysql列类型

在这里插入图片描述

  • 字符串

CHAR(size) 最大255字符

VARCHAR(size) utf8字符集最大21844字符,可变长度字符串 ,可存储0-65535字节,最大65532字节 1-3个字节记录大小,不能用

定长用CHAR,查询快,不定长用VARCHAR

  • 日期
CREATE TABLE table_name

(	

​	t1 TIMESTAMP **NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP**	//如果没指定时间会用当前时间添加进去,更新时也用当前时间更新

)

日期可以直接比较

  • 添加列
ALTER TABLE table_name

ADD					(column datatype [DEFAULT] expr]

​							[ ,  column datatype]...);
  • 修改列
ALTER TABLE table_name

MODIFY			  (column datatype [DEFAULT] expr]

​							[ ,  column datatype]...);
  • 删除列
ALTER TABLE table_name

DROP				 COLUMN 列名1,
DROP				 COLUMN 列名2;
  • 修改列名
ALTER TABLE table_name CHANGE old_name new_name datatype

表数据操作

  • 添加数据
INSERT INTO table_name [(column[, column...])]

VALUES		(value [, value...]);

在这里插入图片描述

  • 修改数据
UPDATE tbl_name
		SET col_name=expr1 [, col_name2=expr2...]
		[WHERE where_definition]
  • 删除数据
DELETE FROM tbl_name
		[WHERE where_definition]
  • 查询数据

    • SELECT [DISTINCT] *|{column1, column2...}
      			FROM	table_name;
      
    • 使用表达式对查询的列进行运算

      SELECT *|{column1 | expression...}
      		FROM	table_name;
      
    • 使用as

      SELECT column_name AS 别名 FROM 表名;
      

在这里插入图片描述

  • order by

    SELECT column1, column2...
    		FROM	table;
    		ORDER BY column asc|desc
    

    asc:升序(默认)

    desc:降序

  • 统计函数,count,返回行的总数

    SELECT COUNT(*) | COUNT(列名) FROM table_name
    			[WHERE where_definition]
    
  • 合计函数,sum

    SELECT SUM(列名) {, sum(列名)} FROM table_name
    			[WHERE where_definition]
    
  • 合计函数,avg

    SELECT AVG(列名) {, AVG(列名)...} FROM table_name
    			[WHERE where_definition]
    
  • group by,对列进行分组

    having,对分组后的子句进行过滤

    SELECT column1, column2... FROM table_name
    		GROUP BY column HAVING ...
    

函数

  • 字符串相关函数在这里插入图片描述

    DUAL,亚元表,测试时可用此表

  • 数学函数在这里插入图片描述

  • 时间,日期函数在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 加密函数

    在这里插入图片描述

  • 流程控制函数

    在这里插入图片描述

    LIKE操作符,模糊查询

    %:表示0-多个任意字符 _:表示单个字符

    判断是否为空,使用 IS NULLIS NOT NULL

多表查询

  • 分页查询

    SELECT ... LIMIT start, rows			//表示从start+1行开始,取rows行,从0开始算
    									//LIMIT 每页显示的记录数 * (第几页-1),每页显示记录数
    
  • 自连接

    将同一张表当作两张表,给表取别名

    SELECT * FROM table1 t1,table2 t2
    
  • 子查询

    嵌入在其他sql语句中的SELECT 语句,也叫嵌套查询

    • 单行子查询:只返回一行数据的子查询语句
    • 多行子查询:返回多行数据的子查询 IN
    • 多列子查询:(字段1,字段2…)=(SELECT 字段1,字段2 FROM…)
  • 表复制和去重

    CREATE TABLE my_table02 LIKE emp;	-- 把 emp 表的结构(列)复制到my_table02
    
  • 合并查询

在这里插入图片描述
在这里插入图片描述

  • 外连接

在这里插入图片描述
在这里插入图片描述

  • 约束

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 外键

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CREATE TABLE tab_name
(
    sex ENUM('男','女')				-- 枚举类型
)
  • 自增长

在这里插入图片描述
在这里插入图片描述

索引

以空间换时间,创建索引之后文件变大,但查询对应字段速度变快

没有使用索引时会进行全表扫描,慢,使用索引会形成一个索引的数据结构,比如二叉树

代价:磁盘占用;对dml(update delete insert)语句效率影响,每次删除需要重新对索引进行维护

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

修改索引就是先删除再添加新的索引

在这里插入图片描述

事务

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

存储引擎

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

视图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值