当前位置: 首页 > news >正文

MySQL学习(长期更新)

1、基本操作,增删查改

INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);
DELETE FROM 表名 WHERE 条件
SELECT * FROM 表名 WHERE 条件
UPDATE 表名 SET 字段1 = 值, 字段2 = 值, ... WHERE 条件;

SELECT * INTO 新表 FROM 旧表 WHERE…

        INSERT INTO 语句用于向一张表中插入新的行。

        SELECT INTO 语句从一张表中选取数据插入到另一张表中。常用于创建表的备份复件或者用于对记录进行存档。

2、删除表

1. drop是完全删除表,包括表结构

2. delete是删除表数据,保留表的结构,而且可以加where,只删除一行或者多行

3. truncate 只能删除表数据,会保留表结构,而且不能加where

DROP TABLE 表名

3、创建视图

CREATE VIEW view_name[column] AS select_statement [WITH CHECK OPTION]

4、授权查询

授权查询的语句是grant...to

eg:grant select on CUSTOMERS(cid,cname) to SQLTest 

5、窗口函数

SELECT … RANK () OVER (……) AS … FROM …

row_number,rank,dense_rank 3 个排名函数的用法:
        row_number:不管排名是否有相同的,都按照顺序1,2,3 ….. n; 
        rank:排名相同的名次一样,同一排名有几个,后面排名就会跳过几次;
        dense_rank:排名相同的名次一样,且后面名次不跳跃。

eg: 

select 
row_number() over(order by num) row_number,      //12345
rank() over(order by num) rank,                  //12245
dense_rank() over(order by num) dense_rank       //12234
from movies;

6、区间类

1、BETWEEN…AND函数,闭区间 

2、in 表示在此集合内

7、进制转换

eg:SELECT CONV('5F',16,3);        //10112,这里表示将5F从16进制转为3进制 

8、聚合函数

聚合函数AVG、MIN、MAX、SUM、NOT IN 函数 

SELECT AVG(字段) AS … FROM 表名 WHERE 字段 NOT IN ……

MAX(字段)、MIN(字段)、SUM(字段)

9、表的连接

table1 RIGHT JOIN table2   // 右连接,以table2为主表
table1 LEFT JOIN table2     // 左连接,以table1为主表
table1 INNER JOIN table2   //内连接,以两表对应

SELECT DISTINCT 字段名 FROM table1 P1,table1 P2 WHERE P1.字段1= P2.字段1

AND p1.字段2 <> p2.字段2        // <>自连接、DISTINCT 去重

10、表的操作

CREATE 新建表
CREATE TABLE 表名 (字段1 字段类型 约束,字段2 字段类型 约束,...
);
ALTER 修改表 
ALTER TABLE 表名 MODIFY 字段 字段长度;           // 修改了列的数据类型
ALTER TABLE 表名 ADD 字段 字段长度;              // 添加了新的一列
ALTER TABLE 表名 CHANGE 字段1 字段2 字段长度;    // 修改了列名

X、难题

 1、奇偶数互换,若总数为奇数,最后一个不变

        现需改变相邻员工的编号eno,如果当员工总人数为奇数时,不需要改变最后一个员工ename的编号。比如员工编号是1、2、3、4、5的话,则需要变成2、1、4、3、5.

//方法1
SELECT 
ROW_NUMBER() OVER(ORDER BY(eno+1-2*POWER(0,eno%2))) AS eno,ename 
FROM employee//方法2
SELECT
ROW_NUMBER() OVER(ORDER BY(eno-1+2*MOD(eno,2))) AS eno,ename
FROM employee//方法3
SELECT
IF(eno%2=0,eno-1,
IF(eno=(SELECT COUNT(DISTINCT eno) FROM employee),eno,eno+1))
AS eno,ename
FROM employee
ORDER BY eno

X、其他

1、存储过程包含很多行SQL语句,但在客户机调用存储过程时,网络中只要传送调用存储过程的语句,而无需在网络中发送很多行代码,减少了网络流量,特别是大型、复杂的数据处理,存储过程无需将中间结果集送回客户机,只要发送最终结果。 →增加网络流量

2、缓慢变化维度(Slowly Changing Dimension, SCD)是数据仓库建模中的重要概念,针对维度数据随时间发生变化时的处理方法。→覆盖原值、增加新行、增加新列

3、在MySQL中不能使用 = NULL 或 != NULL 等比较运算符在列中查找 NULL 值 ,要用IS NULL 或 IS NOT NULL才会进行NULL值或非NULL值得查找。

 

相关文章:

  • 如何通过 7 种有线或无线方式将视频从 PC 传输到 Android
  • 二分K-means:让聚类更高效、更精准!
  • Meta V-JEPA 2:革命性的视频联合的世界模型
  • AWS S3拒绝非https的请求访问
  • ASP.NET MVC 中SignalR实现实时进度通信的深度解析
  • 网络资源模板--基于Android studio 通讯录App
  • JSONPath常用表达式
  • WPF学习(二)
  • 蓝牙版本演进史:从 1.0 到 5.4 的技术突破 —— 面试高频考点与历年真题详解
  • LeetCode--34.在排序数组中查找元素的第一个和最后一个位置
  • css3 背景色渐变
  • 【java中使用stream处理list数据提取其中的某个字段,并由List<String>转为List<Long>】
  • DNS服务管理企业级实战模拟
  • Flask视频和图片上传
  • win11装vm虚拟机创建Linux常见问题!
  • 线上线下融合驱动:开源链动2+1模式与AI智能名片赋能高价值社群生态的机制研究
  • 常见的Dolphin Scheduler报错
  • Docker Compose部署Spring Cloud 微服务系统
  • 腾讯云搭建web服务器的方法
  • extern关键字:C/C++跨文件编程利器
  • 网站如何做tag/广告推广怎么做最有效
  • 建站软件怎么免费升级/做网络优化哪家公司比较好
  • 郴州企业网站建设制作/湖南专业关键词优化
  • frontpage做网站/大学生网页设计作业
  • 济宁城乡建设委员会的网站/seo关键词怎么选
  • 工商网站备案办法/广州网站推广软件