ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mysql学习笔记

2022-09-06 20:35:29  阅读:60  来源: 互联网

标签:NAME -- 列名 表名 笔记 学习 COLUMN Mysql TABLE


数据库的CURD操作

创建数据库

CREATE DATABASE `数据库名`;

DROP DATABASE `数据库名`;

USE `数据库名`;

创建表

CREATE TABLE IF NOT EXISTS `表名`(

`列名` 数据类型(长度) NOT NULL AUTO_INCREMENT COMMENT '注释',

PRIMARY KEY(`列名`)

)ENGINE = INNODB DEFAULT CHARSET = utf8mb4

添加外键

KEY `FK_NAME` (`列名`),

CONSTRAINT `约束名` FOREIGN KEY (`列名`) REFERENCES `表名` (`所在表中的列名`)

ALTER TABLE `表名`

ADD CONSTRAINT `约束名` FOREIGN KEY (`列名`) REFERENCES `表名` (`列名`);

修改表

ALTER TABLE `表名` RENAME AS `表名`;

ALTER TABLE `表名` ADD `列名` 数据结构(长度);

--修改约束

ALTER TABLE `表名` MODIFY `列名` 数据结构(长度);

--重命名列

ALTER TABLE `表名` CHANGE`列名` `新列名` 数据结构(长度);

--删除表的字段

ALTER TABLE `表名` DROP `列名`;

删除表

DROP TABLE IF EXISTS `表名`;

DML语言

--增

INSERT INTO TABLE_NAME (COLUMN_NAME) VALUES('DATA');

--删

DELETE FROM TABLE_NAME WHERE ...;

TRUNCATE:清空一个表,其中表的结构和索引约束不会改变

两者区别:TRUNCATE删除后自增会归零,DELETE不会影响自增

--改

UPDATE TABLE_NAME SET COLUMN_NAME = 'VALUE' WHERE...;

当不写where时,修改所有数据

= 等于
< > <= !=
BETWEEN...AND 在...之间
AND &&
OR ||

--查

SELECT

FROM

JOIN

WHERE

GROUP BY

HAVING

ORDER BY

LIMIT

查询所有数据

SELECT * FROM TABLE_NAME;

查询指定字段

SELECT COLUMN_NAME FROM TABLE_NAME;

--起别名

SELECT COLUMN_NAME AS 别名 FROM TABLE_NAME AS 别名;

CONCAT(A,B)连接字符串

--去重DISTINCT

SELECT DISTINCT COLUMN_NAME FORM TABLE_NAME;

--查询自增步长

SELECT @@AUTO_INCREMENT_INCREMENT;

模糊查询

%代表0或任意个字符,_代表一个字符

操作符 描述
IS NULL ...操作符为NULL
IS NOT NULL
LIKE ...与...符合
IN 在某个集合中

SELECT COLUMN_NAME FROM TABLE_NAME

WHERE COLUMN_NAME LIKE 'XXX_X%';

多表查询

JOIN--七种join理论image-20220906152324602

SELECT COLUMN_NAME FROM TABLE_NAME(主表) AS 主表别名

INNER JOIN TABLE_NAME(从表) AS 从表别名

WHERE 主表别名.COLUMN_NAME = 从表别名.COLUMN_NAME

操作 描述
INNER JOIN 如果表中至少一个匹配,则返回行
LEFT JOIN 会返回左表中所有的值,即使右表中不匹配
RIGHT JOIN 会右表中返回所有的值,即使左表中不匹配

JOIN ON ->连接查询

WHERE ->等值查询

自连接

将一张表拆成两张表

分页与排序

排序

升序ASC,降序DESC

ORDER BY COLUMN_NAME DESC/ASC;

分页

每页只显示几条数据

LIMIT 起始值,页面大小

子查询与嵌套查询

子查询

本质是在WHERE中再嵌套一个SELECT查询语句

MYSQL常用函数

常用函数

数学运算

ABS()取绝对值 CEILING()向上取整 FLOOR向下取整 RANG()返回0到1之间的随机数 SIGN()返回符号

字符串函数

CHAR_LENGTH()返回字符段长度 CONCAT()拼接字符串 INSERT('字符串’,位置1,长度,'替换字符串')在指定位置替换字符串

LOWER()转小写 UPPER()转大写 REPLACE() CURRENT_DATE()获取当前日期

聚合函数

函数名 含义
COUNT(指定列) 指定列名时会忽略NULL,*和1不会忽略NULL,本质是计算行数
SUM()
AVG()
MAX()
MIN()

GROUP BY COLUMN_NAME 按照什么字段来分组

HAVING 过滤分组记录必须满足的条件

事务

SET AUTOCOMMIT = 0;关闭自动提交事务

SET AUTOCOMMIT = 1;开启自动提交事务

--事务开启

START TRANSACTION; 标记一个事务的开始

--提交事务

COMMIT

--事务回滚

ROLLBACK

SAVEPOINT NAME 设置一个保存点

ROLLBACK TO SAVEPOINT

RELEASE SAVEPOINT 删除保存点

索引

PRIMARY KEY 主键索引 -> 唯一标识,不可重复

UNIQUE KEY 唯一索引 -> 避免重复的列出现,多个列都可标识为唯一索引,但每个列的值不可重复

KEY/INDEX 常规索引 ->默认的,可以用INDEX或KEY设置

FULLTEXT 全文索引 -> 在特定的数据库引擎下有

SHOW INDEX FROM TABLE_NAME

--增加索引

ALTER TABLE TABLE_NAME.COLUMN_NAME ADD INDEX `INDEX_NAME`(`COLUMN_NAME`);

--创建函数

DELIMITER $$ 写函数之前必须写的分隔符

CREATE FUNCTION 函数名()

RETURN 数值类型

BEGIN

END;

权限管理

标签:NAME,--,列名,表名,笔记,学习,COLUMN,Mysql,TABLE
来源: https://www.cnblogs.com/CSQsummerW/p/16663187.html

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有