MySQL基本用法

文章目录

    • MySQL
      • MySQL配置
      • 导入csv
      • 导出csv
      • 备份与恢复
    • sql语法
      • 数据库和模式 DATABASE SCHEMA
      • 表 TABLE
      • 数据操纵
        • 数据查询
        • 数据更新
      • 视图 VIEW
      • 触发器 TRIGGER
      • 授权
    • type

MySQL

MySQL配置

SHOW [GLOBAL] VARIABLES LIKE <>;

SHOW DATABASES;  
SHOW CREATE DATABASE <db>; 
SHOW TABLES;
SHOW CREATE TABLE <tb>;

导入csv

LOAD DATA INFILE 'D:/MySQL/data/Uploads/<file>.csv'INTO TABLE <tb>  FIELDS TERMINATED BY ','    -- 字段分割OPTIONALLY ENCLOSED BY '"'  -- 双引号包围的,视为一个字段ESCAPED BY '"'              -- 引号字段之内可使用另一个引号转义LINES TERMINATED BY '\r\n'; -- 元组分割

导出csv

<select语句>INTO OUTFILE 'D:/MySQL/data/Uploads/Downloads/<file>.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\r\n';

备份与恢复

sqldump -u <user> -p <db> > <db_dump>.sql
sql -u <user> -p <db> < <db_dump>.sql

sql语法

db - database 数据库
scm - schema 模式
tb - table 表
v - view 视图
col - column 列
tp - type 数据类型
ck - check 检查
cst - constraint 约束
idx - index 索引
tg - trigger 触发器

数据库和模式 DATABASE SCHEMA

USE <db> 
CREATE DATABASE <db> [CHARACTER SET gbk COLLATE gbk_chinese_ci]; 
ALTER DATABASE <db> CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
DROP DATABASE <db>;CREATE SCHEMA <scm> AUTHORIZATION <user> [<tb>|<v>|<授权定义子句>]
DROP SCHEMA <scm>[CASCADERESTRICT];

表 TABLE

create

CREATE TABLE <tb>(<col> <tp> <col_cst>,CONSTRAINT <cst_name> <tb_cst>
);-- example
CREATE TABLE Student( Sno CHAR(6) PRIMARY KEY,Sname CHAR(8) NOT NULL UNIQUE,Sage INT DEFAULT 20,  Ssex CHAR(2),Sdept CHAR(12) DEFAULT NULL,CONSTRAINT C1 CHECK (Ssex IN('男','女')),
);
CREATE TABLE SC(Sno CHAR(6) NOT NULL,Cno CHAR(6) REFERENCES Course(Cno), Grade INT CHECK (Grade BETWEEN 0 AND 100),Sdate DATE,CONSTRAINT SC_PK PRIMARY KEY(Sno,Cno),CONSTRAINT SC_FK FOREIGN KEY (Sno) REFERENCES Student(Sno)
);

alter

ALTER TABLE <tb> ADD <col> <tp>; -- 新列NULL
ALTER TABLE <tb> ALTER Sname CHAR(20); -- 修改原列,可能破坏数据 MySQL失败了
ALTER TABLE <tb> MODIFY COLUMN <col> <new_tp> [<dft> <not_null> <ck>]; -- 修改类型
ALTER TABLE <tb> CHANGE <old_col> <new_col> <tp>;-- 添加约束
ALTER TABLE <tb> ADD PRIMARY KEY (<col>);
ALTER TABLE <tb> ADD [constraint <key_name>] FOREIGN KEY (Sno) REFERENCES <other_tb>(<pk>);
ALTER TABLE <tb> ADD CONSTRAINT <ck_name> CHECK (<ck>);
ALTER TABLE <tb> ALTER COLUMN <col> SET DEFAULT <dft>;
-- 删除约束
ALTER TABLE <tb> DROP PRIMARY KEY;
ALTER TABLE <tb> DROP FOREIGN KEY <key_name>;
ALTER TABLE <tb> DROP CONSTRAINT <cst>;
ALTER TABLE <tb> ALTER COLUMN <col> DROP DEFAULT;

drop

DROP TABLE <tb> [RESTRICTCASCADE];

index

CREATE [UNIQUE] [CLUSTER] INDEX <idx> ON <tb> (<col>[ASC|DESC][,<col2>[A|D] ]);DROP INDEX <idx>;

数据操纵

数据查询
  1. 单表查询
SELECT [ALL|DISTINCT] <cols> FROM <tb/v>WHERE <> GROUP BY <col> HAVING <>ORDER BY <col> [ASC|DESC];
WHERE子句查询条件
比较表达式[NOT] =、>、>=、<、<=、<>(或!=)
逻辑表达式AND、OR、NOT
BETWEEN<列名>[NOT]BETWEEN <常> AND <>
IN<列名>[NOT]IN (常量表列 或 SELECT语句)
LIKE<列名>[NOT]LIKE ‘匹配字符串’
NULL<列名> IS[NOT] NULL
EXISTS[NOT]EXISTS (SELECT语句)

% 任意长度, _ 单个字符
要查询含%_字符串时,使用ESCAPE ‘<换码字符>’ 转义:
以"DB_"开头,且倒数第3个字符为i:Cname LIKE 'DB\_%i__' ESCAPE '\'

集函数

COUNT/SUM/AVG/MAX/MIN ([ALL|DISTINCT] <col>)
  1. 连接查询
SELECT <cols> FROM <tb1>, <tb2> WHERE <>;
SELECT <cols> FROM <tb1> INNER JOIN <tb2> ON <>;
SELECT <cols> FROM <tb1> INNER JOIN <tb2>;
SELECT <cols> FROM <tb1> LEFT JOIN <tb2> ON <>;
  1. 嵌套查询
SELECT Sname FROM Student 	-- 外层查询/父查询
WHERE Sno IN(SELECT Sno FROM SC WHERE Cno= '2') --内层查询/子查询SELECT Sname FROM Student
WHERE EXISTS -- 相关子查询(SELECT * FROM SC WHERE Sno = Student.Sno AND Cno = '1'); 
  1. 集合查询
<查询块>
UNION [ALL] -- INTERSECT MINUS
<查询块>
[ORDER BY]
数据更新
  1. 插入数据
INSERT INTO <tb> [(<cols>)] VALUES (<vals>);
INSERT INTO <tb> [(<cols>)] <select>;
  1. 修改数据
UPDATE <tb> SET <cols> = <col_vals> [WHERE <>];
  1. 删除数据
DELETE FROM <tb> WHERE <>;
TRUNCATE TABLE <tb>; -- 无日志

视图 VIEW

  1. create
CREATE VIEW <v> [(<cols>)] AS <select> [WITH CHECK OPTION];-- example
CREATE VIEW dbo.ShipStatusView 
AS SELECT OrderID, ShippedDate, ContactName FROM Customers c, Orders oWHERE c.CustomerID=O.CustomerID and RequiredDate<ShippedDate;CREATE VIEW D-Sage (Sdept, Avgage)
AS SELECT Sdept, AVG(Sage) FROM Student GROUP BY Sdept;
  1. drop
DROP VIEW <v>;

触发器 TRIGGER

CREATE TRIGGER <触发器名>  
{BEFORE | AFTER} <INSERT|UPDATE|DELETE> ON <表名>
FOR EACH ROW
[WHEN <触发条件>]
<触发动作体>-- example
drop trigger if exists <tg>;
DELIMITER // 
CREATE TRIGGER check_name_update
BEFORE UPDATE ON address
FOR EACH ROW
BEGIN IF NOT EXISTS (SELECT name FROM salaried_worker WHERE name = NEW.name) THEN SIGNAL SQLSTATE '45000'SET MESSAGE_TEXT = 'THE NAME DOSE NOT EXIST.';END IF;
END//
DELIMITER ; -- 分隔符
  • NEW:新插入的记录
  • OLD:刚删除的记录

授权

创建用户

CREATE USER 'BIT'@'localhost' IDENTIFIED BY 'password';

授权

GRANT {<权限1>, <权限2>, …}ON <表名或视图名>TO {<用户名1>,<用户名2>,| PUBLIC}[WITH GRANT OPTION];-- example
GRANT UPDATE (折扣) ON Lineitem TO 'BIT'@'localhost';

撤销

REVOKE {<权限1>, <权限2>, …} ON TABLE <表名或视图名>FROM {<用户名1>,<用户名2>,| PUBLIC}[RESTRICT|CASCADE];-- example
REVOKE ALL PRIVILEGES ON Lineitem FROM 'BIT'@'localhost';

查看

SHOW GRANTS FOR CURRENT_USER(); -- 当前用户
SHOW GRANTS FOR 'username'@'localhost'; --特定用户
SELECT User, Host FROM mysql.user; -- 所有用户列表

删除

DROP USER 'username'@'localhost';

type

CREATE DOMAIN <域名> <数据类型> -- MySQL不支持
  • 数值类型:
    INT: − 2 31 → 2 31 − 1 -2^{31} \to 2^{31}-1 2312311
    TINYINT: − 128 → 127 -128 \to 127 128127
    SMALLINT: − 2 15 → 2 15 − 1 -2^{15} \to 2^{15}-1 2152151
    BIGINT: − 2 63 → 2 63 − 1 -2^{63} \to 2^{63}-1 2632631
    FLOAT: 4个字节,精度大约为7位小数位
    DOUBLE: 8个字节,精度大约为15位小数位
    DECIMAL(或NUMERIC): 定点数,可以指定精度和小数位数。
    可以通过在类型后面添加UNSIGNED关键字来指定无符号类型。

  • 日期和时间类型:
    DATE: 日期,格式为 YYYY-MM-DD。
    TIME: 时间,格式为 HH:MM:SS。
    DATETIME: 日期和时间组合,格式为YYYY-MM-DD HH:MM:SS。
    TIMESTAMP: 时间戳,与DATETIME类似,但范围较小。

  • 字符串类型:
    CHAR(n): 固定长度字符串,最大长度为 255 个字符。
    VARCHAR(n): 可变长度字符串,最大长度为 65535 个字符。
    TEXT: 长文本数据,最大长度为 65535 个字符。
    BLOB: 二进制大对象,用于存储大型二进制数据,如图片或文件。

  • 空间数据类型:
    POINT: 点。
    LINESTRING: 线。
    POLYGON: 多边形。
    GEOMETRY: 任意类型的空间对象。

  • JSON数据类型:
    JSON: 用于存储JSON(JavaScript Object Notation)数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/2009.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

sublime可以写python吗

首先你需要安装一个Sublime Text&#xff08;http://www.sublimetext.com/&#xff09;和一个Python&#xff08;https://www.python.org/downloads/&#xff09;&#xff0c; 接下来打开Sublime Text&#xff1a; 1、如下图所示&#xff0c;点击菜单栏中的Tools —> Buil…

初始Docker

概述&#xff1a; 容器&#xff0c;作为云原生技术的重要组成部分&#xff0c;与虚拟机一样&#xff0c;均属于虚拟化技术的范畴。然而&#xff0c;容器技术以其独特的优势&#xff0c;在虚拟化领域中脱颖而出。与虚拟机不同&#xff0c;容器能够摆脱操作系统的束缚&#xff0…

MATLAB函数,用于计算平均误差、误差最大值、标准差、均方误差、均方根误差

文章目录 源代码使用示例:计算公式1. 平均误差 (Mean Error, ME)2. 误差最大值 (Maximum Error, ME)3. 标准差 (Standard Deviation, SD)4. 均方误差 (Mean Squared Error, MSE)5. 均方根误差 (Root Mean Squared Error, RMSE) 总结 以下是一个MATLAB函数&#xff0c;用于计算常…

Axure设计之左右滚动组件教程(动态面板)

很多项目产品设计经常会遇到左右滚动的导航、图片展示、内容区域等&#xff0c;接下来我们用Axure来实现一下左右滚动的菜单导航。通过案例我们可以举一反三进行其他方式的滚动组件设计&#xff0c;如常见的上下滚动、翻页滚动等等。 一、效果展示&#xff1a; 1、点击“向左箭…

软考攻略/超详细/系统集成项目管理工程师/基础知识分享19

7.1 系统集成基础&#xff08;掌握&#xff09; 系统集成一般可以分为软件集成、硬件集成、网络集成、数据集成和业务应用集成等。 1、系统集成概念理解 软硬件系统集成是一种系统的思想和方法&#xff0c;它虽然涉及软件和硬件等技术问题&#xff0c;但绝不仅仅是技术问题 软硬…

数据库Redis篇

系列文章目录 第一章 C/C语言篇第二章 计算机网络篇第三章 操作系统篇第四章 数据库MySQL篇第五章 数据库Redis篇第六章 场景题/算法题第七篇 常见HR问题篇 本系列专栏&#xff1a;点击进入 后端开发面经 关注走一波 秋招阶段&#xff0c;面过很多大中小厂&#xff0c;积攒了…

SpringAOP技术

目录 一、概念引入 1.引入依赖 2.工具类 3.实体类 4.持久层实现类 5.业务层实现类 6.配置文件 7.测试类 8.运行 查看数据库&#xff1a; 9.现在如果转账过程中出现异常 AccountServiceImpl(模拟异常) 再运行&#xff1a; 查看数据库&#xff1a; 10.现在做事务…

从富文本窥探苹果的代码秘密

从富文本窥探苹果的代码秘密 背景 在我们的业务场景下&#xff0c;为突出诸如 “利益点”和“利率” 等特性以推动订单成交&#xff0c;引入了 “富文本” 这一概念。富文本具备丰富格式的文本展示与编辑功能。然而&#xff0c;恰是由于富文本具有 “多样式”“复杂排版” 等特…

恒创科技:如何知道一台服务器能承载多少用户?

如何知道一台服务器能承载多少用户?其实服务器承载能力并非一个单一固定的数值&#xff0c;而是由多种因素共同决定的动态指标&#xff0c;所以想知道能承载的访客量&#xff0c;我们要先搞清楚究竟有哪些因素会影响服务器承载访客的数量。 影响服务器承载访客的因素&#xff…

vue3配置eslint代码规划和prettier自动格式化

eslint 安装依赖&#xff1a;npm install -D eslint/create-config初始化&#xff1a;npx eslint --init初始化后会在项目中自动创建eslint.config.js文件&#xff0c;把以下内容复制粘粘替换 import globals from "globals"; import pluginJs from "eslint/j…

6个步骤让你快速学会甘特图的制作

在项目管理中&#xff0c;一个清晰、详细的进度表格和进度计划表是确保项目顺利进行的重要工具。它们不仅帮助团队成员了解各自的任务和责任&#xff0c;还能有效监控项目的进展&#xff0c;及时发现并解决问题。 制作项目进度表格和制定项目进度计划表是项目管理中的关键步骤…

蒙特卡洛方法(MC Basic算法例子)

本文章中使用的算法和例子来源于bilibili中西湖大学赵世钰老师的【强化学习的数学原理】课程。网址&#xff1a;第5课-蒙特卡洛方法&#xff08;MC Basic算法例子&#xff09;_哔哩哔哩_bilibili 目录 一、任务目标 二、细节分析 三、代码演示 一、任务目标 1、初始的策略已…

数理统计(第4章第1节:1元方差分析)

目录 引例 基本概念 1元方差分析的数学模型 ​编辑离差平方和​编辑​编辑​编辑​编辑​编辑 单因子方差分析的假设检验​编辑 1元方差分析表 例子 引例 基本概念 1元方差分析的数学模型 离差平方和 单因子方差分析的假设检验 1元方差分析表 例子

Python酷库之旅-第三方库Pandas(192)

目录 一、用法精讲 891、pandas.Index.nunique方法 891-1、语法 891-2、参数 891-3、功能 891-4、返回值 891-5、说明 891-6、用法 891-6-1、数据准备 891-6-2、代码示例 891-6-3、结果输出 892、pandas.Index.value_counts方法 892-1、语法 892-2、参数 892-3、…

光控资本:普通股东、控股股东、大股东、实际控制人都是什么意思?

1、一般股东 一般股东是指持有公司一般股股份的出资者。一般股是指在公司的经营管理和盈利及财产的分配上享有一般权力的股份。 一般股的权力&#xff1a; 1、获得股利的权力。一般股股东在股市付出完债息、优先股股息后&#xff0c;能够获得股利&#xff0c;具体有多少要看…

SELS-SSL/TLS

一、了解公钥加密&#xff08;非对称加密&#xff09; 非对称加密中&#xff0c;用于加密数据的密钥与用于解密数据的密钥不同。私钥仅所有者知晓&#xff0c;而公钥则可自由分发。发送方使用接收方的公钥对数据进行加密&#xff0c;数据仅能使用相应的私钥进行解密。 你可以将…

openfoam中生成的3d案例提取得到slice后的2d案例

问题&#xff1a; 由于前期准备做3d的案例&#xff0c;并且模拟也比较费时间&#xff0c;现在生成了几十份3d的数据&#xff0c;但是现在只想要2d的数据来演示&#xff0c;该如何提取或者转换呢&#xff1f; 解决方法&#xff1a; 1.说明图片中的每个2d视图的points都是恒定不…

【SPIE出版,EI检索稳定】2024年人机交互与虚拟现实国际会议(HCIVR 2024,11月15-17日)

2024年人机交互与虚拟现实国际会议&#xff08;HCIVR 2024&#xff09; 2024 International Conference on Human-Computer Interaction and Virtual Reality 官方信息 会议官网&#xff1a;www.hcivr.org 2024 International Conference on Human-Computer Interaction and …

计算机网络 -- HTTP 协议详解

根据以往的内容我们可以得知&#xff0c;大多数网络协议一共有五层标准&#xff0c;今天我们将 探索 应用层的 HTTP 协议。 一 什么是HTTP协议 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。 HTTP 协议 &#xff0c;全称超文本传输协议 &#…

算法【Java】—— 动态规划之斐波那契数列模型

动态规划 动态规划的思路一共有五个步骤&#xff1a; 状态表示&#xff1a;由经验和题目要求得出&#xff0c;这个确实有点抽象&#xff0c;下面的题目会带大家慢慢感受状态标识状态转移方程初始化&#xff1a;避免越界访问 dp 表&#xff0c;所以在进行填表之前我们要预先填…