当前位置: 首页 > news >正文

01.SQL语言概述

SQL 语言概述

SQL (Structured Query Language)结构化査询语言

1. 关系型数据库的常见组件

  • 数据库: database 表的集合,物理上表现为一个目录
  • 表: table,行: row 列: column
  • 索引: index
  • 视图: view,虚拟的表
  • 存储过程: procedure
  • 存储函数: function
  • 触发器: trigger
  • 事件调度器: event scheduler,任务计划
  • 用户: user
  • 权限: privilege

2. SQL 语言规范

  • 在数据库系统中,SOL 语句不区分大小写,建议用大写
  • SQL 语句可单行或多行书写,默认以";"结尾
  • 关键词不能跨多行或简写
  • 用空格和 TAB 缩进来提高语句的可读性
  • 子句通常位于独立行,便于编辑,提高可读性

3. 注释

SQL标准# 单行注释,注意有空格 
-- 注释内容# 多行注释/*注释内容注释内容注释内容*/MySQL注释
# 注释内容

4. 数据库对象和命名

数据库的组件(对象):
数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等

命名规则:

  • 必须以字母开头,后续可以包括字母,数字和三个特殊字符(#_$)
  • 不要使用MySOL的保留字

5. SQL语句分类

  • DDL: Data Defination Language 数据定义语言

    CREATE, DROP,ALTER

  • DML: Data Manipulation Language 数据操纵语言

    INSERT, DELETE,UPDATE

    软件开发:CRUD

  • DQL:Data Query Language 数据查询语言

    SELECT

  • DCL:Data Control Language 数据控制语言

    GRANT,REVOKE

  • TCL:Transaction Control Language 事务控制语言

    COMMIT,ROLLBACK,SAVEPOINT

6. SQL语句构成

关健字Keyword组成子句clause,多条clause组成语句

示例:

SELECT *			# SELECT子句
FROM products		# FROM子句
WHERE price>666		# WHERE子句说明:一组SQL语句由三个子句构成,SELECT,FROM和WHERE是关键字

7. 查看SQL帮助

https://dev.mysql.com/doc/refman/5.7/en/sql-statements.html

mysql> help contentsmysql> help Data Typesmysql> help BIT

8. 字符集和排序

早期MySQL版本默认为 latin1,从MySQL8.0开始默认字符集已经为 utf8mb4

# 查看支持所有字符集:
mysql> show character set;
mysql> show charset;# 查看当前默认字符集
mysql> show variables like 'character%';# 查看支持所有排序规则
mysql> show collation;# 查看当前使用的排序规则
mysql> show variables like  'collation%';# 设置服务器默认的字符集
vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4# 设置mysql客户端默认的字符集
vim /etc/my.cnf针对mysql客户端
[mysql]
default-character-set=utf8mb4针对所有MySQL客户端
[client]
default-character-set=utf8mb4
http://www.xdnf.cn/news/938269.html

相关文章:

  • 华为OD机考- 简单的自动曝光/平均像素
  • (每日一道算法题)验证二叉搜索树
  • 随机算法一文深度全解
  • Dify 工作流全解:模块组成、设计思路与DSL实战指南
  • 【ROS2】核心概念8——参数设置(Parameters)
  • 商家平台AI智能搜索工程实践|RAG|向量检索增强
  • AT_abc409_e [ABC409E] Pair Annihilation
  • 三级流水线是什么?
  • OpenJudge | 大整数乘法
  • 5.子网划分及分片相关计算
  • python中使用LibreHardwareMonitorLib.dll获取电脑硬件信息~~【不用同步打开exe文件】
  • Docker知识五:服务编排(Docker Compose概念)
  • [M132][Part_1] chromium codelab
  • JDK 17 新特性
  • three.js 零基础到入门
  • GeoBoundaries下载行政区划边界数据(提供中国资源shapefile)
  • 重复文件管理 一键清理重复 图片 文档 免费 超轻量无广告
  • 机器学习 [白板推导](四)[降维]
  • SpringBoot自定义EndPoint实现线程池动态管理
  • 6月8日day48打卡
  • 动态工作流:目标结构来自外部数据集
  • 华为OD机试-正整数到Excel编号之间的转换-逻辑分析(Java 2025 A卷 100分)
  • 【LeetCode 热题100】字符串 DP 三连:最长回文子串、最长公共子序列 编辑距离(力扣5 / 1143/ )(Go语言版)
  • 【P2P】低延迟直播(尤其是 P2P 实时分发)常用的 x264 编码参数示例
  • Prompt工程学习之自我一致性
  • 6.8 note
  • Python学习——排序
  • Linux 内存管理调试分析:ftrace、perf、crash 的系统化使用
  • 3.机器学习-分类模型-线性模型
  • 《深入理解 Nacos 集群与 Raft 协议》系列四:日志复制机制:Raft 如何确保提交可靠且幂等