MySQL深入01-SQL语言-数据字典-服务器变量-数据操作DML-视图

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

SQL语言的组成部分

常见分类:

1
2
3
DDL:数据定义语言
DCL:数据控制语言,如授权
DML:数据操作语言

其它分类:

1
2
3
4
5
6
完整性定义语言:
     DDL的一部分功能约束
     约束:包括主键,外键,唯一键,条件,非空,事务等各类约束
视图定义:即虚表,就是存储下来的SELECT语句
事务控制
嵌入式SQL和动态SQL


数据字典:系统编目(system catalog)

作用:保存数据库服务器上的元数据

保存元数据的数据库有:

1
2
3
information_schema
mysql
performance_schema

元数据包括

1
2
3
4
5
6
7
8
9
10
11
关系名称
关系的各字段名称
各字段的数据类型和长度
约束
关系上的视图名称及视图的定义
授权用户名称
用户的授权和帐户信息
统计类的数据
关系字段的个数
关系中的行数
关系的存储方法


SQL语言的数据类型及属性修饰符

字符型1:char,varchar,text等

1
2
3
4
5
6
7
8
9
# 对应可用属性修饰符:
NOT NULL:非空约束
NULL:允许为空
DEFAULT ‘string’:默认值,不适用于text类型
CHARACTER SET ‘字符集’:设定字符集
     查看当前MySQL字符集:show variables like ‘%char%’;
     查看可使用字符集:show character  set ;
COLLATION:设定字符集的排序规则
     查看可用排序规则:show collation;

字符型2:binary,varbinary,blob等

1
2
3
# 对应可用属性修饰符
NOT NULL,NULL
DEFAULT:不适用于blob类型

整型

1
2
3
4
5
# 对应可用属性修饰符:
AUTO_INCREMENT:自动增长(前提:非空、唯一,支持索引,非负值)
UNSIGNED:无符号
NOT NULL,NULL
DEFAULT

浮点型

1
2
3
4
# 对应可用属性修饰符:
NOT NULL,NULL
DEFAULT
UNSIGNED

日期时间型

1
2
3
# 对应可用属性修饰符:
NOT NULL,NULL
DEFAULT

内置类型

1
2
3
4
5
6
# ENUM和SET的区别
     ENUM:枚举,一般存储字串,只能取其中一个使用
     SET:集合,一般存储单个字符,可组合各字符形成字串使用
# 对应可用属性修饰符:
NOT NULL,NULL
DEFAULT

MySQL中的服务器变量

支持修改的服务器变量

1
2
3
4
5
6
# 一般分类
     动态变量:可在MySQL运行时修改
     静态变量:在配置文件中修改其值,其重启后方能生效
# 从其生效范围来分类
     全局变量:服务器级别,修改之后仅对新建立的会话有效
     会话变量:会话级别,仅对当前会话有效;会话建立时,从全局继承各变量

查看服务器变量

1
2
3
4
5
法1:show [global|session] variables [like ‘’];
# 注:默认是session变量
法2: select  @@{global|session}.Variable_Name;
# 如select @@global.sql_mode;
法3: select  * from information_schema.global_variables where variable_name=’Some_Variable_Name’;

修改服务器变量

1
2
3
# 前提:默认仅管理员有权限修改全局变量
set  {global|session} Variable_Name=’Value’;
# 注:无论是全局还是会话级别的动态变量修改,在重启mysqld后都会失效;若想永久生效,可定义在配置文件中的相应段中[mysqld]


MySQL中的数据操作

数据库操作

wKiom1NPF8vwKKU_AAPKpcatHQg162.jpg

表操作

创建表

wKioL1NPF-OCFlu6AA63m-UncI8811.jpg

删除表

wKiom1NPGBujtIAIAAG16GQu_dI321.jpg

修改表结构

wKiom1NPGCiSgK09ABFJy1D8s-U530.jpg

数据操作

包括插入(Insert)替换(Replace)更新(Update)删除(Delete)操作

wKioL1NPF8_Rvaq6AApoQExArMI842.jpg


MySQL的视图

本质:视图就是存储下来的select语句

创建视图

1
2
create view View_Name as select_clause
# 如 create view stu as select Name,Age,ClassID from students;

显示视图的创建属性

1
show create view stu;

使用:授权用户权限时,只指定视图,则用户只能查看到视图内的内容,而不能查看全部数据了


注:MySQL中的Select 操作比较复杂,也是很重要的部分,所以下一篇单独讲解











本文转自 xxrenzhe11 51CTO博客,原文链接:http://blog.51cto.com/xxrenzhe/1396838,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
235
分享
相关文章
|
24天前
|
SQL
【YashanDB知识库】like 变量的SQL语句应用程序执行效率低与yasql执行效率高
【YashanDB知识库】like 变量的SQL语句应用程序执行效率低与yasql执行效率高
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
81 25
如何解决 MySQL 数据库服务器 CPU 飙升的情况
大家好,我是 V 哥。当 MySQL 数据库服务器 CPU 飙升时,如何快速定位和解决问题至关重要。本文整理了一套实用的排查和优化套路,包括使用系统监控工具、分析慢查询日志、优化 SQL 查询、调整 MySQL 配置参数、优化数据库架构及检查硬件资源等步骤。通过一个电商业务系统的案例,详细展示了从问题发现到解决的全过程,帮助你有效降低 CPU 使用率,提升系统性能。关注 V 哥,掌握更多技术干货。
178 0
SQL做数据分析的困境,查询语言无法回答的真相
SQL 在简单数据分析任务中表现良好,但面对复杂需求时显得力不从心。例如,统计新用户第二天的留存率或连续活跃用户的计算,SQL 需要嵌套子查询和复杂关联,代码冗长难懂。Python 虽更灵活,但仍需变通思路,复杂度较高。相比之下,SPL(Structured Process Language)语法简洁、支持有序计算和分组子集保留,具备强大的交互性和调试功能,适合处理复杂的深度数据分析任务。SPL 已开源免费,是数据分析师的更好选择。
MySQL进阶突击系列(05)突击MVCC核心原理 | 左右护法ReadView视图和undoLog版本链强强联合
2024年小结:感谢阿里云开发者社区每月的分享交流活动,支持持续学习和进步。过去五个月投稿29篇,其中17篇获高分认可。本文详细介绍了MySQL InnoDB存储引擎的MVCC机制,包括数据版本链、readView视图及解决脏读、不可重复读、幻读问题的demo演示。
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
169 12
MySQL 8.0特性-自增变量的持久化
【11月更文挑战第8天】在 MySQL 8.0 之前,自增变量(`AUTO_INCREMENT`)的行为在服务器重启后可能会发生变化,导致意外结果。MySQL 8.0 引入了自增变量的持久化特性,将其信息存储在数据字典中,确保重启后的一致性。这提高了开发和管理的稳定性,减少了主键冲突和数据不一致的风险。默认情况下,MySQL 8.0 启用了这一特性,但在升级时需注意行为变化。
135 1