ICode9

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

Mysql学习笔记

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

标签: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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

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

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

ICode9版权所有