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.rhkb.cn/news/462497.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于AI深度学习的中医针灸实训室腹针穴位智能辅助定位系统开发

在中医针灸的传统治疗中&#xff0c;穴位取穴的精确度对于治疗效果至关重要。然而&#xff0c;传统的定位方法&#xff0c;如体表标志法、骨度折量法和指寸法&#xff0c;由于观察角度、个体差异&#xff08;如人体姿态和皮肤纹理&#xff09;以及环境因素的干扰&#xff0c;往…

金融标准体系

目录 基本原则 标准体系结构图 标准明细表 金融标准体系下载地址 基本原则 需求引领、顶层设计。 坚持目标导向、问题导向、结果 导向有机统一&#xff0c;构建支撑适用、体系完善、科学合理的金融 标准体系。 全面系统、重点突出。 以金融业运用有效、保护有力、 管理高…

.NET 8 Web API 中的身份验证和授权

本次介绍分为3篇文章&#xff1a; 1&#xff1a;.Net 8 Web API CRUD 操作.Net 8 Web API CRUD 操作-CSDN博客 2&#xff1a;在 .Net 8 API 中实现 Entity Framework 的 Code First 方法https://blog.csdn.net/hefeng_aspnet/article/details/143229912 3&#xff1a;.NET …

Spring Boot 与 Vue 共铸卓越采购管理新平台

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

字符串统计(Python)

接收键盘任意录入&#xff0c;分别统计大小写字母、数字及其它字符数量&#xff0c;打印输出。 (笔记模板由python脚本于2024年11月02日 08:23:31创建&#xff0c;本篇笔记适合熟悉python字符串并懂得基本编程技法的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xf…

qt QScrollArea详解

1、概述 QScrollArea是Qt框架中的一个控件&#xff0c;它提供了一个可滚动的视图区域&#xff0c;用于显示超出视图大小的内容。这个控件非常有用&#xff0c;尤其是在处理大型表格、文本区域、图像集合或任何需要滚动浏览的内容时。QScrollArea本身不直接显示内容&#xff0c…

HTML 基础标签——元数据标签 <meta>

文章目录 1. `<meta>` 标签概述2. 属性详解2.1 `charset` 属性2.2 `name` 属性2.3 `content` 属性2.4 `http-equiv` 属性3. 其他常见属性小结在 HTML 文档中,元数据标签 <meta> 是一种重要的标签,用于提供关于文档的信息,这些信息不直接显示在网页内容中,但对于…

InnoDB: corruption in the InnoDB tablespace

磁盘空间满和断电都可能导致mysql无法启动&#xff0c;报错如下&#xff1a; InnoDB: corruption in the InnoDB tablespace. Please refer to InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html InnoDB: about forcing recovery. 20241031 10:54:…

Java网络通信

前言 1. 基本知识 通俗一点就是CS就是要下载应用来访问的&#xff0c;BS是在浏览器上面访问的&#xff0c;不用下载 1.1 IP IP地址就是你电脑的主机号&#xff0c;一台设备都有唯一的IP&#xff0c;端口就是程序的唯一标识 这上面就是我们的ip地址了&#xff0c;有IPv4和…

iptables面试题

1、详述iptales工作流程以及规则过滤顺序&#xff1f; iptables过滤的规则顺序是由上至下&#xff0c;若出现相同的匹配规则则遵循由上至下的顺序 2、iptables的几个表以及每个表对应链的作用&#xff1f; Iptables有四表五链 Filter表 : Filter表是iptables中使用的默认表…

【论文笔记】Attention Prompting on Image for Large Vision-Language Models

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: Attention Prompting on I…

【spring】Cookie和Session的设置与获取(@CookieValue()和@SessionAttribute())

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;程序猿的春天 获取Cookie 使用 Servlet 获取Cookie&#xff1a; Spring MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;也是在 Servlet 的基础上实现的 RestController RequestMapping…

Android启动流程_Init阶段

前言 本文将会介绍 Android 启动流程&#xff0c;将基于 Android 10 代码逻辑介绍原生启动过程。 bootloader 上电 -> 加载 recovery 镜像或者 boot 镜像 -> linux kernel 启动 -> 加载 init 进程 -> 加载 zygote 进程 -> systemserver 进程 -> 系统启动 …

MySQL数据库之存储过程的创建与应用

存储过程 procedure 一.存储过程 作用&#xff1a;将经常使用的功能写成存储过程&#xff0c;方便后续重复使用。 二.创建存储过程 三.调用存储过程 call在计算机中是调用的意思 案例1&#xff1a;查看MySQL用户数 如上图所示&#xff0c;这是查看MySQL数据库中的user个数…

7.使用Redis进行秒杀优化

目录 1. 优化思路 总结之前实现的秒杀过程 下单流程 2. 使用Redis完成秒杀资格判断和库存 0. Redis中数据类型的选用 1.将优惠券信息保存到Redis中 2.基于Lua脚本&#xff0c;判断秒杀库存、一人一单&#xff0c;决定用户是否抢购成功 3. 开启新协程&#xff0c;处理数…

终于把DETR搞懂了!Detection Transformer架构详解及使用方法说明

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Calling short variants with GATK4

计算生物学实验5: Calling short variants with GATK4 1. 实验目的 本实验目的是利用 GATK4 工具准确高效地检测出基因组中的短变异。通过该工具对样本基因组进行分析&#xff0c;旨在发现单核苷酸变异&#xff08;SNV&#xff09;和小的插入缺失&#xff08;Indel&#xff0…

S32K324 DTCM/DTCM Backdoor使用及测试

文章目录 前言S32K324的Memory mapDTCM的原理DTCM的使用DTCM/DTCM backdoor测试总结 前言 S32K324的Ram在选型手册上给的是512K&#xff0c;但实际上sram只有320k,项目中对ram的需求更大&#xff0c;所以需要拓展一下ram的使用。本文分析DTCM的使用方案及测试结果 S32K324的M…

Pytorch猴痘病识别

Pytorch猴痘病识别 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 电脑系统&#xff1a;Windows11 显卡型号&#xff1a;NVIDIA Quadro P620 语言环境&#xff1a;python 3.9.7 编译器&#xff1a;jupyte…

网络安全渗透实际案例

目录 案例场景案例目标和工具 案例操作步骤Step 1&#xff1a;信息收集与识别**结果分析** Step 2&#xff1a;漏洞扫描**预期结果** Step 3&#xff1a;漏洞利用与权限验证Step 4&#xff1a;后渗透测试Step 5&#xff1a;报告生成和修复建议**修复建议** 案例总结 下面是一个…