MySQL数据库——SQL(1)-SQL通用语法、SQL分类、DDL(数据库操作、表操作)

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL数据库——SQL(1)-SQL通用语法、SQL分类、DDL(数据库操作、表操作)

SQL(1)

分为六点内容:

  • SQL通用语法
  • SQL分类
  • DDL
  • DML
  • DQL
  • DCL

SQL通用语法

  1. SQL语句可以单行或多行书写,以分号结尾。
  2. SQL语句可以使用空格/缩进来增强语句的可读性。
  3. MySQL数据库的SQL语句不区分大小写,但关键字建议使用大写。
  4. 注释:


单行注释: --注释内容 或 #注释内容 (MySQL特有)

多行注释: /*注释内容*/

SQL分类 image.png DDL

数据库操作

1.查询所有数据库

SHOW DATABASES;

2.查询当前数据库

SELECT DATABASE();

3.创建

CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARSET 字符集 COLLATE 排序规则;

解释:

4.删除

DROP DATABASE IF EXISTS 数据库名;

解释:

此处的IF EXISTS与第3点的作用类似。

5.使用

USE 数据库名;

表操作-查询

1.查询当前数据库所有表

SHOW TABLES;

2.查询表结构

DESC 表名;

3.查询指定表的建表语句

SHOW CREATE TABLE 表名;

表操作-创建

CREATE TABLE 表名(
    字段1 字段1类型[COMMENT 字段1注释],
    字段2 字段2类型[COMMENT 字段2注释],
    字段3 字段3类型[COMMENT 字段3注释],
    ......
    字段n 字段n类型[COMMENT 字段n注释]
)[COMMENT 表注释];

注意:[......]为可选参数,最后一个字段后面没有逗号.

我们来尝试一下,创建数据库->使用数据库->建表

->查看表结构->查询表的建表语句。

表操作-数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型 image.png 注:DECIMAL依赖于M(精度)和D(标度)的值,例如:570.68,其精度为5,标度为2;


使用DOUBLE时也需要标明精度和标准,如分数80.5、100.0,记为:score DOUBLE(4,1).


我们之前写的age实际上用不到INT这样稍微大的空间,而且因为其一定为整数,所以可以改写为:age TINYINT UNSIGNED.

字符串类型

image.png 重点解释一下char(定长字符串)和varchar(变长字符串)的区别:


char在给定字符长度的情况下,只能固定占用一定的空间,


而varchar在给定字符长度的情况下,会对数据进行计算之后再占用空间。


例如:char(10)和varchar(10),二者都存储着4个字节的数据,char占用10个字节,而varchar则只会占用4个字节。


性能上,char比varchar更好,不需要对数据的大小进行计算。

日期类型

image.png

DDL小案例

根据需求创建表(设计合理的数据类型、长度)

设计一张员工信息表,要求如下:

  1. 编号(纯数字)
  2. 员工工号(字符串类型,长度不超过10位)
  3. 员工姓名(字符串,长度不超过10位)
  4. 性别(男/女,存储一个汉字)
  5. 年龄(正常人年龄,不可能存储负数)
  6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
  7. 入职时间(取值年月日即可)

代码:

CREATE TABLE emp(
    id INT COMMENT '编号',
    worknumber VARCHAR(10) COMMENT '工号',
    name VARCHAR(10) COMMENT '姓名',
    gender CHAR(1) COMMENT '性别',
    age TINYINT UNSIGNED COMMENT '年龄',
    idcard CHAR(18) COMMENT '身份证号',
    entrydate DATE COMMENT '入职时间'
)COMMENT '员工表';

创建之后查询表格情况(DESC EMP;):

表操作-修改&删除

1.添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释];

为emp表增加一个新的字段“昵称”为nickname,类型为varchar(20)

2. 修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

3.修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释];

将emp表的nickname字段修改为username,类型为varchar(30):

4.删除字段

ALTER TABLE 表名 DROP 字段名;

将emp表的字段username删除:

5.修改表名

ALTER TABLE 表名 RENAME TO 新表名;

将emp表的表名修改为employee:

6.删除表&删除并重新创建表

删除表

DROP TABLE [IF EXISTS] 表名;

删除指定表,并重新创建该表

TRUNCATE TABLE 表名;

(后者保留表结构)

注意:在删除表时,表中的全部数据也会被删除。

删除表操作:

删除并重建表操作:

 

DDL总结

数据库操作

SHOW DATABASES;
CREATE DATABASE 数据库名;
USE 数据库名;
SELECT DATABASE();
DROP DATABASE 数据库名;

表操作

SHOW TABLES;
CREATE TABLE 表名(字段 字段类型,字段 字段类型);
DESC 表名;
SHOW CREATE TABLE 表名;
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO ...;
DROP TABLE 表名;

end



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
28 3
|
12天前
|
SQL 关系型数据库 MySQL
MySQL 保姆级教程(一):了解 SQL
MySQL 保姆级教程(一):了解 SQL
|
14天前
|
SQL 安全 关系型数据库
【SQL】已解决:MySQL 服务无法启动
【SQL】已解决:MySQL 服务无法启动
82 1
|
7天前
|
SQL 关系型数据库 MySQL
MySQL小白教程(进阶篇):深入理解SQL与数据管理
MySQL小白教程(进阶篇):深入理解SQL与数据管理
|
16天前
|
存储 关系型数据库 MySQL
探索MySQL:关系型数据库的基石
MySQL,作为全球最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于各种Web应用、企业级应用和数据仓库中
|
13天前
|
关系型数据库 MySQL 网络安全
Mysql 数据库主从复制
在MySQL主从复制环境中,配置了两台虚拟机:主VM拥有IP1,从VM有IP2。主VM的`my.cnf`设置server-id为1,启用二进制日志;从VM设置server-id为2,开启GTID模式。通过`find`命令查找配置文件,编辑`my.cnf`,在主服务器上创建复制用户,记录二进制日志信息,然后锁定表并备份数据。备份文件通过SCP传输到从服务器,恢复数据并配置复制源,启动复制。检查复制状态确认运行正常。最后解锁表,完成主从同步,新用户在从库中自动更新。
989 7
Mysql 数据库主从复制
|
14天前
|
缓存 运维 关系型数据库
数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比
经过深入的技术剖析与性能对比,PolarDB-X DN凭借其自研的X-Paxos协议和一系列优化设计,在性能、正确性、可用性及资源开销等方面展现出对MySQL MGR的多项优势,但MGR在MySQL生态体系内也占据重要地位,但需要考虑备库宕机抖动、跨机房容灾性能波动、稳定性等各种情况,因此如果想用好MGR,必须配备专业的技术和运维团队的支持。 在面对大规模、高并发、高可用性需求时,PolarDB-X存储引擎以其独特的技术优势和优异的性能表现,相比于MGR在开箱即用的场景下,PolarDB-X基于DN的集中式(标准版)在功能和性能都做到了很好的平衡,成为了极具竞争力的数据库解决方案。
|
4天前
|
分布式计算 大数据 关系型数据库
MaxCompute产品使用合集之如何实现类似mysql实例中的数据库功能
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
19天前
|
XML Java 关系型数据库
Action:Consider the following: If you want an embedde ,springBoot配置数据库,补全springBoot的xml和mysql配置信息就好了
Action:Consider the following: If you want an embedde ,springBoot配置数据库,补全springBoot的xml和mysql配置信息就好了
|
19天前
|
关系型数据库 MySQL 数据库
关系型数据库mysql数据增量恢复
【7月更文挑战第3天】
133 2