0
点赞
收藏
分享

微信扫一扫

Mysql数据库学习笔记

独兜曲 2022-04-18 阅读 84

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执行命令行)

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

备份数据库的表

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操作符,模糊查询

    判断是否为空,使用 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)语句效率影响,每次删除需要重新对索引进行维护

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

在这里插入图片描述

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

在这里插入图片描述

事务

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

在这里插入图片描述

  • 隔离

在这里插入图片描述

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

存储引擎

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

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

管理

  • 用户管理

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

  • 权限管理

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

举报

相关推荐

0 条评论