MySQL中的sql语句

MySQL中的sql语句

DML、 DDL、 DCL

DML(Data Manipulation Language),用于对数据库中的数据进行操作,包括插入、查询、更新和删除数据等操作。常见的 DML 命令包括 SELECT(查询)、INSERT(插入)、UPDATE(更新)和 DELETE(删除)等。

DDL(Data Definition Language), 用于定义数据库的结构和组件,包括创建表、修改表结构、删除表等操作。常见的 DDL 命令包括 CREATE(创建)、ALTER(修改)和 DROP(删除)等。

DCL(Data Control Language),用于控制数据库用户的访问权限和安全性,包括授权用户访问数据库对象、撤销用户权限等操作。常见的 DCL 命令包括 GRANT(授权)、REVOKE(撤销权限)等。

数据库

创建数据库

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name		# 表示如果存在则不执行
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name			# 指定字符集
  | COLLATE [=] collation_name					# 指定校对规则
  | ENCRYPTION [=] {'Y' | 'N'}					# 指定是否需要加密
}

image

删除数据库

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

在这里插入图片描述

创建的时候用的是schema,删除的时候用的是database,彼此不分,说明两者一样

更改数据库

ALTER {DATABASE | SCHEMA} [db_name]
    alter_option ...

alter_option: {
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name
  | [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
  | READ ONLY [=] {DEFAULT | 0 | 1}
}

数据表

创建数据表

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)
    [table_options]
    [partition_options]  
    
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)]
    [table_options]
    [partition_options]
    [IGNORE | REPLACE]
    [AS] query_expression

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    { LIKE old_tbl_name | (LIKE old_tbl_name) }
create_definition: {
    col_name column_definition	# 定义一个列,包括列名和列的数据类型以及其他属性
  | {INDEX | KEY} [index_name] [index_type] (key_part,...)
      [index_option] ...			# 定义一个索引,可以指定索引的名称、列和其他选项
  | {FULLTEXT | SPATIAL} [INDEX | KEY] [index_name] (key_part,...)
      [index_option] ...		# 定义全文索引或空间索引,可以指定名称、列和其他选项
  | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (key_part,...)
      [index_option] ... 		# 定义主键约束,可以指定主键的名称、类型、包含的列和其他选项
  | [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY] [index_name] [index_type] (key_part,...)
      [index_option] ...		# 定义唯一约束,可以指定唯一约束的名称、类型、包含的列和其他选项
  | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (col_name,...)
      reference_definition	# 定义外键约束,包括外键名称、包含的列以及参考的表和列
  | check_constraint_definition # 定义检查约束,用于限制列中的值必须满足特定条件
}

column_definition: {
    data_type 											# 指定类型
    	[NOT NULL | NULL] 						# 是否可以包含null值
    	[DEFAULT {literal | (expr)} ] #	指定默认值
      [VISIBLE | INVISIBLE]					# 指定列是否可见,默认为可见
      [AUTO_INCREMENT] [UNIQUE [KEY]] [[PRIMARY] KEY] # 自增长,适用于整型列
      [COMMENT 'string']						# 注释
      [COLLATE collation_name]			# 指定排序规则
      [COLUMN_FORMAT {FIXED | DYNAMIC | DEFAULT}] # 列的存储格式
      [ENGINE_ATTRIBUTE [=] 'string'] # 指定引擎相关的属性
      [SECONDARY_ENGINE_ATTRIBUTE [=] 'string'] # 指定引擎相关的属性
      [STORAGE {DISK | MEMORY}]			# 指定存储引擎为磁盘还是内存
      [reference_definition]				# 定义外键约束
      [check_constraint_definition] # 定义检查约束
}

key_part: {col_name [(length)] | (expr)} [ASC | DESC] # 定义排序,可以指定列名的长度限制,也可以是表达式

index_type:
    USING {BTREE | HASH} # 索引类型,b+树和哈希索引

index_option: {
    KEY_BLOCK_SIZE [=] value	# 指定索引块的大小
  | index_type								# 索引类型
  | WITH PARSER parser_name		# 指定解析器名称
  | COMMENT 'string'					# 注释
  | {VISIBLE | INVISIBLE}			# 是否可见
  |ENGINE_ATTRIBUTE [=] 'string'	# 指定引擎相关的属性
  |SECONDARY_ENGINE_ATTRIBUTE [=] 'string' # 指定引擎相关的属性
}

check_constraint_definition:
    [CONSTRAINT [symbol]] 		# 指定约束的名称,symbol为可选项
    CHECK (expr) 							# 指定要检查的条件表达式,只有当条件表达式返回TRUE时才会通过约束
    [[NOT] ENFORCED]					# 指定是否启用该检查约束,默认为ENFORCED

reference_definition:
    REFERENCES tbl_name (key_part,...) # 指定被引用表的名称以及与参考键相关联的列
      [MATCH FULL 			# 指定了匹配规则,决定了在执行关联操作时如何处理不完全匹配的情况
       | MATCH PARTIAL  # 要求所有引用键的值都在被引用表中有相应的匹配值
       | MATCH SIMPLE]	# 允许其中一部分引用键的值没有相应的匹配值
      [ON DELETE reference_option] # 指定了在删除被引用行时采取的操作
      [ON UPDATE reference_option] # 指定了在更新被引用行时采取的操作

reference_option:
    RESTRICT 				# 在引用表中存在相关行时,阻止对被引用表中的行进行删除或更新操作。这是默认的选项
    | CASCADE 			# 当对被引用表中的行进行删除或更新操作时,自动级联执行相应操作到引用表中的相关行
    | SET NULL 			# 在被引用表中的行被删除或更新时,将引用表中的相关列的值设置为NULL
    | NO ACTION 		# 在引用表中存在相关行时,阻止对被引用表中的行进行删除或更新操作
    | SET DEFAULT		# 在被引用表中的行被删除或更新时,将引用表中相关列的值设置为默认值

table_options:
    table_option [[,] table_option] ...

table_option: {
    AUTOEXTEND_SIZE [=] value										# 指定表空间自动扩展的大小
  | AUTO_INCREMENT [=] value										# 指定自增列的起始值和增量
  | AVG_ROW_LENGTH [=] value										# 指定每行的平均长度
  | [DEFAULT] CHARACTER SET [=] charset_name		# 指定默认的字符集
  | CHECKSUM [=] {0 | 1}												# 启用或禁用校验和
  | [DEFAULT] COLLATE [=] collation_name				# 指定默认的排序规则
  | COMMENT [=] 'string'												# 为表添加注释
  | COMPRESSION [=] {'ZLIB' | 'LZ4' | 'NONE'}		# 指定表的压缩方式
  | CONNECTION [=] 'connect_string'							# 指定连接字符串
  | {DATA | INDEX} DIRECTORY [=] 'absolute path to directory'		# 指定数据或索引文件存储的目录
  | DELAY_KEY_WRITE [=] {0 | 1}									# 延迟索引更新
  | ENCRYPTION [=] {'Y' | 'N'}									# 启用或禁用表的加密
  | ENGINE [=] engine_name											# 指定表的存储引擎
  | ENGINE_ATTRIBUTE [=] 'string'								# 指定特定存储引擎的属性
  | INSERT_METHOD [=] { NO | FIRST | LAST }			# 指定插入新记录的位置
  | KEY_BLOCK_SIZE [=] value										# 指定索引块的大小
  | MAX_ROWS [=] value													# 指定表中允许的最大行数
  | MIN_ROWS [=] value													# 指定表中预期的最小行数
  | PACK_KEYS [=] {0 | 1 | DEFAULT}							# 指定索引压缩方式
  | PASSWORD [=] 'string'												# 为表设置密码
  | ROW_FORMAT [=] {DEFAULT | DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT} # 指定行的存储格式
  | START TRANSACTION 													# 在创建或更改表时自动启动事务
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'			# 指定特定辅助引擎的属性
  | STATS_AUTO_RECALC [=] {DEFAULT | 0 | 1}			# 启用或禁用统计数据的自动重新计算
  | STATS_PERSISTENT [=] {DEFAULT | 0 | 1}			# 启用或禁用持久化统计数据
  | STATS_SAMPLE_PAGES [=] value								# 指定用于统计采样的页数
  | tablespace_option														# 指定表空间选项
  | UNION [=] (tbl_name[,tbl_name]...)					# 将多个表合并成一个虚拟表
}

partition_options:
    PARTITION BY																# 指定分区的方式
        { [LINEAR] HASH(expr)										# 按照表达式的哈希值进行分区
        | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)	# 按照指定列的值进行分区,可以选择使用线性哈希算法
        | RANGE{(expr) | COLUMNS(column_list)}	# 按照表达式的范围或指定列的范围进行分区
        | LIST{(expr) | COLUMNS(column_list)} } # 按照表达式的列表或指定列的列表进行分区
    [PARTITIONS num]														# 指定分区的数量
    [SUBPARTITION BY														# 指定次级分区的方式
        { [LINEAR] HASH(expr)										# 按照表达式的哈希值进行次级分区
        | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list) }	# 按照指定列的值进行次级分区
      [SUBPARTITIONS num]												# 指定次级分区的数量
    ]
    [(partition_definition [, partition_definition] ...)]		# 指定每个分区的具体定义

partition_definition:
    PARTITION partition_name										# 指定分区的名称
        [VALUES																	# 指定分区的取值范围
            {LESS THAN {(expr | value_list) | MAXVALUE}	# 指定分区的上限值,可以是表达式或值列表的形式,也可以使用MAXVALUE表示最大值
            | IN (value_list)}]									# 指定分区的取值列表
        [[STORAGE] ENGINE [=] engine_name]			# 指定存储引擎
        [COMMENT [=] 'string' ]									# 为分区添加注释
        [DATA DIRECTORY [=] 'data_dir']					# 指定数据文件存储的目录
        [INDEX DIRECTORY [=] 'index_dir']				# 指定索引文件存储的目录
        [MAX_ROWS [=] max_number_of_rows]				# 指定分区允许的最大行数
        [MIN_ROWS [=] min_number_of_rows]				# 指定分区预期的最小行数
        [TABLESPACE [=] tablespace_name]				# 指定表空间的名称
        [(subpartition_definition [, subpartition_definition] ...)]	# 指定次级分区的具体定义

subpartition_definition:
    SUBPARTITION logical_name										# 指定次级分区的逻辑名称
        [[STORAGE] ENGINE [=] engine_name]			# 指定存储引擎
        [COMMENT [=] 'string' ]									# 为次级分区添加注释
        [DATA DIRECTORY [=] 'data_dir']					# 指定数据文件存储的目录
        [INDEX DIRECTORY [=] 'index_dir']				# 指定索引文件存储的目录
        [MAX_ROWS [=] max_number_of_rows]				# 指定次级分区允许的最大行数
        [MIN_ROWS [=] min_number_of_rows]				# 指定次级分区预期的最小行数
        [TABLESPACE [=] tablespace_name]				# 指定表空间的名称

tablespace_option:
    TABLESPACE tablespace_name [STORAGE DISK] 	# 将表存储在指定的表空间中,可以选择将存储类型设置为DISK,表示使用磁盘存储
  | [TABLESPACE tablespace_name] STORAGE MEMORY	# 将表存储在指定的表空间中,存储类型设置为MEMORY,表示使用内存存储

克隆数据表

CREATE TABLE new_tbl LIKE orig_tbl;

CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;

修改数据表

# 添加字段
ALTER TABLE table_name DROP COLUMN new_column;
# 修改字段类型
ALTER TABLE table_name MODIFY COLUMN existing_column INT;
# 删除字段
ALTER TABLE table_name DROP COLUMN column_to_delete;
# 修改表名
ALTER TABLE table_name RENAME TO new_table_name;

删除数据表

DROP TABLE table_name;

表空间

在mysql中,只有InnoDB引擎才有表空间的概念,用于存储表数据和索引的物理文件,可以包含一个或者多个数据文件,这些文件可以位于同一个或不同个存储设备上。

创建表空间

CREATE [UNDO] TABLESPACE tablespace_name  	# 创建[undo]表空间

  InnoDB and NDB:														# 支持InnoDB引擎和NDB引擎的选项
    [ADD DATAFILE 'file_name']							# 指定要向Undo表空间添加的数据文件的文件名
    [AUTOEXTEND_SIZE [=] value]							# 指定自动扩展Undo表空间时增加的大小

  InnoDB only:															# 仅支持InnoDB
    [FILE_BLOCK_SIZE = value]								# 指定Undo表空间文件的块大小
    [ENCRYPTION [=] {'Y' | 'N'}]						# 指定是否对Undo表空间进行加密

  NDB only:																	# 仅支持NDB
    USE LOGFILE GROUP logfile_group					# 指定要使用的日志文档
    [EXTENT_SIZE [=] extent_size]						# 指定Undo表空间的扩展大小
    [INITIAL_SIZE [=] initial_size]					# 指定Undo表空间的初始大小
    [MAX_SIZE [=] max_size]									# 指定Undo表空间的最大大小
    [NODEGROUP [=] nodegroup_id]						# 指定Undo表空间的节点组
    [WAIT]																	# 指定在创建Undo表空间时是否等待完成
    [COMMENT [=] 'string']									# 添加对Undo表空间的注释

  InnoDB and NDB:
    [ENGINE [=] engine_name]								# 指定表空间的存储引擎

  Reserved for future use:
    [ENGINE_ATTRIBUTE [=] 'string']					# 这是保留给将来使用的选项,目前没有特定的用途

修改表空间

# 修改表空间的数据文件路径
ALTER TABLESPACE tablespace_name ADD DATAFILE 'new_file_path';

# 修改表空间的自动扩展大小
ALTER TABLESPACE tablespace_name AUTOEXTEND_SIZE = new_size;

# 修改表空间的加密选项(仅适用于InnoDB表空间)
ALTER TABLESPACE tablespace_name ENCRYPTION = 'Y'; -- 开启加密

删除表空间

DROP TABLESPACE tablespace_name;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows系统安装dlib及face_recognition搭建人脸识别环境

关于face_recognition face_recognition被称为世界上最简洁的人脸识别库,借助face_recognition库,我们可以使用Python和命令行提取、识别、操作人脸。 face_recognition的人脸识别是基于业内领先的C开源库 dlib中的深度学习模型,用Labeled …

数据结构——栈(详细分析)

目录 🍉引言 🍉栈的本质和特点 🍈栈的基本操作 🍈栈的特点 🍍后进先出 🍍操作受限 🍍动态调整 🍈栈的优缺点 🍍优点 🍍缺点 🍉栈的应用…

STM32F407VET6 学习笔记4:DAC数模转换功能的配置

今日继续学习使用嘉立创的 立创梁山派天空星,芯片是 STM32F407VET6 使用库函数编程 最近突然发现很久没有接触过单片机的AD转换功能了,之前还是学习51单片机时学习驱动PCF8591芯片实现AD转换功能的,还从未在STM32平台上进行过相关的实验经验…

解决go install 网络问题

rootiZbp1hiqzlhh6w05gloffgZ:~# go install mvdan.cc/garblelatest go: mvdan.cc/garblelatest: module mvdan.cc/garble: Get "https://proxy.golang.org/mvdan.cc/garble/v/list": dial tcp 172.217.160.81:443: i/o timeout解决方法 更换阿里代理 rootiZbp1hiq…

保障餐饮场所安全:定期送检可燃气体报警器

在餐饮行业,火灾隐患一直备受关注。餐厅、茶饮店等场所常常使用燃气设备,而这些设备带来了潜在的安全隐患。 为了及时发现并预防可燃气体泄漏,可燃气体报警器的定期送检显得尤为重要。那么,为什么可燃气体报警器需要定期送检呢&a…

python中的线程并行

文章目录 1. 单线程2. 线程池ThreadPoolExecutor 1. 单线程 现在有1154张图片需要顺时针旋转后保存到本地,一般使用循环1154次处理,具体代码如下所示,img_paths中存储1154个图片路径,该代码段耗时约用97ms。 t1time.time() for …

【再探】设计模式—代理模式

代理是指授权代理人在一定范围内代表其向第三方进行处理有关事务。 1 代理模式 需求:1)将业务代码与非业务代码分离,在不改变代码结构的基础上,为其添加新的功能。2)为系统中的某些操作做同一处理,例如进…

Dilworth 定理

这是一个关于偏序集的定理,事实上它也可以扩展到图论,dp等中,是一个很有意思的东西 偏序集 偏序集是由集合 S S S以及其上的一个偏序关系 R R R定义的,记为 ( S , R ) (S,R) (S,R) 偏序关系: 对于一个二元关系 R ⊂…

Python筑基之旅-MySQL数据库(四)

目录 一、数据表操作 1、新增记录 1-1、用mysql-connector-python库 1-2、用PyMySQL库 1-3、用PeeWee库 1-4、用SQLAlchemy库 2、删除记录 2-1、用mysql-connector-python库 2-2、用PyMySQL库 2-3、用PeeWee库 2-4、用SQLAlchemy库 3、修改记录 3-1、用mysql-conn…

力扣HOT100 - 21. 合并两个有序链表

解题思路&#xff1a; class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode dum new ListNode(0), cur dum;while (list1 ! null && list2 ! null) {if (list1.val < list2.val) {cur.next list1;list1 list1.next;} els…

力扣刷题---3146. 两个字符串的排列差

题目描述 给你两个字符串 s 和 t&#xff0c;每个字符串中的字符都不重复&#xff0c;且 t 是 s 的一个排列。 排列差 定义为 s 和 t 中每个字符在两个字符串中位置的绝对差值之和。 返回 s 和 t 之间的 排列差 。 示例 1&#xff1a; 输入&#xff1a;s “abc”, t “b…

四万字长文详解——node.js使用移动云,EOS对象存储

目录 前言 安装及安装前的操作 前置条件 如何创建认证信息 使用npm安装SDK开发包 安装开发包命令 初始化操作 存储桶 查看结果命令 查看桶列表 查看结果命令 删除桶 查看结果命令 创建桶 获取桶列表 判断桶是否存在 查询桶所属地域 查询桶的访问权限 管理桶的…

基于springboot+vue+Mysql的校园台球厅人员与设备管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

【C语言】冒泡排序详解

前言 排序&#xff0c;就是将一组数据按特定的规则调换位置&#xff0c;使这组数据具有某种顺序关系&#xff0c;一般就是递增或递减。 在接触C语言不久&#xff0c;我们就会遇到其中一种有名的排序算法——“冒泡排序”&#xff0c;不知道你是否已经掌握了&#xff0c;如果还…

2024最新 Jenkins + Docker 实战教程(五)- 配置Gitee Webhooks实现自动构建部署

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

等保建设:打造MySQL数据库审计系统

1、建设目标 在等级保护三级->应用安全->安全审计中强制需要有审计平台(满足对操作系统、数据库、网络设备的审计&#xff0c;在条件不允许的情况下&#xff0c;至少要使用数据库审计) 数据库审计服务符合等级保护三级标准&#xff0c;帮助您满足合规性要求&#xff0c;…

什么是组态?什么是工业控制中的组态软件?

随着工业4.0和智能制造的发展&#xff0c;工控软件的应用越来越广泛&#xff0c;它们在提高生产效率、降低能耗和减少人力成本等方面发挥着越来越重要的作用。 什么是工控软件&#xff1f; 工控软件是指用于工业控制系统的软件&#xff0c;主要应用于各种生产过程控制、自动化…

Java中流的概念细分

按流的方向分类&#xff1a; 输入流&#xff1a;数据流向是数据源到程序&#xff08;以InputStream、Reader结尾的流&#xff09;。 输出流&#xff1a;数据流向是程序到目的地&#xff08;以OutputStream、Writer结尾的流&#xff09;。 按处理的数据单元分类&#xff1a; 字…

在winnas中使用docker desktop遇到的问题及解决方法记录

最近在尝试从群晖转向winnas&#xff0c;一些简单的服务依然计划使用docker来部署。群晖的docker简单易用且稳定&#xff0c;在win上使用docker desktop过程中遇到了不少问题&#xff0c;在此记录一下以供后来人参考。 一、安装docker desktop后启动时遇到无法启动docker引擎 …

构建数字未来:探索Web3在物联网中的新视角

引言 随着Web3时代的来临&#xff0c;物联网技术正迎来一场新的变革。在这个数字化时代&#xff0c;Web3所带来的技术创新将为物联网的发展开辟新的视角。本文将深入探讨Web3在物联网领域的应用&#xff0c;揭示其在构建数字未来中的重要性和影响。 Web3与物联网的融合 区块链…