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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

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,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
8月前
|
存储 缓存 监控
MySQL服务器配置优化:my.cnf参数调优指南
本文深入解析了MySQL核心配置参数及性能优化技巧,涵盖内存结构、调优原则、存储引擎优化、查询性能优化等内容,通过实战案例帮助读者构建高性能MySQL服务器配置,解决常见的性能瓶颈问题。
1196 0
|
SQL 关系型数据库 MySQL
菜鸟之路Day30一一MySQL之DML&DQL
本文介绍了MySQL中DML(数据操作语言)和DQL(数据查询语言)的核心用法。DML主要包括插入(insert)、更新(update)和删除(delete)语句,通过具体示例演示了如何对表数据进行增删改操作。DQL则聚焦于数据查询,涵盖基本查询、条件查询、聚合函数、分组查询、排序查询和分页查询等内容。文章通过丰富的SQL语句实例,帮助读者掌握如何高效查询和操作数据库中的数据,适合初学者学习和实践。
458 12
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
557 28
|
安全 关系型数据库 MySQL
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
|
存储 SQL 关系型数据库
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
350 25
|
安全 关系型数据库 MySQL
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
|
SQL 存储 关系型数据库
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
669 12
|
监控 关系型数据库 MySQL
如何解决 MySQL 数据库服务器 CPU 飙升的情况
大家好,我是 V 哥。当 MySQL 数据库服务器 CPU 飙升时,如何快速定位和解决问题至关重要。本文整理了一套实用的排查和优化套路,包括使用系统监控工具、分析慢查询日志、优化 SQL 查询、调整 MySQL 配置参数、优化数据库架构及检查硬件资源等步骤。通过一个电商业务系统的案例,详细展示了从问题发现到解决的全过程,帮助你有效降低 CPU 使用率,提升系统性能。关注 V 哥,掌握更多技术干货。
1999 0
|
存储 关系型数据库 MySQL
MySQL 8.0特性-自增变量的持久化
【11月更文挑战第8天】在 MySQL 8.0 之前,自增变量(`AUTO_INCREMENT`)的行为在服务器重启后可能会发生变化,导致意外结果。MySQL 8.0 引入了自增变量的持久化特性,将其信息存储在数据字典中,确保重启后的一致性。这提高了开发和管理的稳定性,减少了主键冲突和数据不一致的风险。默认情况下,MySQL 8.0 启用了这一特性,但在升级时需注意行为变化。
355 1

推荐镜像

更多