MySQL 数据类型详解及SQL语言分类-DDL篇
在数据库开发中,选择合适的数据类型和理解SQL语言的分类是非常重要的。今天详细介绍MySQL中的数据类型,包括数值类型、字符串类型和日期类型,并解释SQL语言的四大分类:DDL、DML、DQL和DCL。
1.MySQL 数据类型
SQL语言是不区分大小写的,大写小写都可以,以 ; 分隔开,注意所有符号都是英文的
(1)数值类型
无符号类型就是后面加上 unsigned

(2)字符串类型
有些类型后面需要加参数,例如:
char(10)表示10各字符大小,一旦设置好长度就是固定的,实际上我只需要1个字符大小,但是它占10个字符大小长度,不够的后面全是空格补充;
varchar(10)表示最大是10个字符长度,我输入2个字符它就占2个大小,上限是10;

(3)日期和时间类型

2.SQL 语言分类
-
DDL (Data Definition Language): 数据定义语言,用于定义数据库结构。
- CREATE: 创建数据库或表。
- ALTER: 修改数据库或表结构。
- DROP: 删除数据库或表。
-
DML (Data Manipulation Language): 数据操作语言,用于数据的增删改。
- INSERT: 插入数据。
- UPDATE: 更新数据。
- DELETE: 删除数据。
-
DQL (Data Query Language): 数据查询语言,用于查询数据。
- SELECT: 查询数据。
-
DCL (Data Control Language): 数据控制语言,用于权限控制。
- GRANT: 授予权限。
- REVOKE: 撤销权限。
3. DDL 语句示例及说明
让我们打开cmd 输入: mysql -u rooot -p 或者 直接打开 MySQL自带的命令行工具,来了解一下DDL的语法,它是针对于数据库的操作,而我们知道关系型数据库以二维表存储数据,也包含对表的操作,但是不能给表添加数据,添加数据就要用到DML
再说一遍,大小写都可以,注意空格和英文符号,还有单词别拼错了
数据库操作
- SHOW DATABASES; 显示所有数据库。
- CREATE DATABASE 数据库名; 创建一个名为
数据库名的数据库。 - USE 数据库名; 使用指定的数据库。
- SELECT DATABASE(); 返回当前使用的数据库。
- DROP DATABASE 数据库名; 删除名为
数据库名的数据库。
常用SQL语句选项
这些可以写也可以不写,可以根据需求例如:
create database if not exists itheima default charset utf8mb4;
IF EXISTS 和 IF NOT EXISTS
例如:如果一个数据库已经 存在/删除 ,我们不加这些选项 直接 创建/删除 时会报错 ,这就是为什么要加这个的原因,如果不存在就创建,如果存在就不创建, create database if not exists test;
DEFAULT CHARSET
用来设置字符集,MySQL8.0默认是 utf8
(1)show databases;
首先输入密码后,输入 show databases; 它会显示都有哪些数据库,information_schema,mysql,performance_schema,sys。这四个数据是系统默认会有的,别轻易修改里面的内容
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.39 MySQL Community Server - GPLCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
(2)create database +数据库名;
我们用于学习,先自己创建一个数据库,输入 create database ittest; 这会创建一个名为 ittest 的数据库
mysql> create database if not exists ittest;
Query OK, 1 row affected (0.01 sec)mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ittest |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
(3)use 数据库名;
这个命令用来切换不同数据库进行操作,输入 use ittest; 出现 Database changed 说明成功切换到对 ittest 的操作
mysql> select database();
+------------+
| database() |
+------------+
| itheima |
+------------+
1 row in set (0.00 sec)mysql> use ittest;
Database changed
mysql>
(4)select database();
用来查询当前所在数据库是哪个,上面示例已经演示过了
(5)drop database 数据名;
用于删除数据库,输入 drop database ittest; 删除ittest数据库
mysql> use ittest;
Database changed
mysql> drop database ittest;
Query OK, 0 rows affected (0.01 sec)mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| itheima |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)mysql>
表操作
(1)show tables;
查看数据库的表单信息,输入 show tables; 我们可以看到有两个表(当然这两个表是我提前创建好的)
mysql> show tables;
+-------------------+
| Tables_in_itheima |
+-------------------+
| emp |
| tb_user |
+-------------------+
2 rows in set (0.00 sec)mysql>
(2)create table 表名;
创建表格,注意格式,每行用 , 逗号隔开,最后一行除外,注释用 comment '注释内容'
进行描述,末位再写 ; 分号,格式如下
CREATE TABLE tb_user (-> id INT COMMENT '编号',-> name VARCHAR(50) COMMENT '姓名',-> age INT COMMENT '年龄',-> gender VARCHAR(1) COMMENT '性别'-> ) COMMENT='用户表';
Query OK, 0 rows affected (0.03 sec)mysql> show tables;
+-------------------+
| Tables_in_itheima |
+-------------------+
| tb_user |
+-------------------+
1 row in set (0.00 sec)
(3)desc 表名;
查看表单,输入 desc tb_user; 会显示数据类型
desc tb_user;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int | YES | | NULL | |
| gender | varchar(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
(4)alter table 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO …;
add 用来增加信息,modify修改 数据类型,change 修改 名称和数据类型 ,drop用来删除,rename to 用来重命名表单
-- 在表 `employees` 中添加一个新的列 `email`,数据类型为 VARCHAR(100)
ALTER TABLE employees ADD email VARCHAR(100) COMMENT '员工电子邮件';-- 修改表 `employees` 中 `age` 列的数据类型为 `SMALLINT`,并添加注释
ALTER TABLE employees MODIFY age SMALLINT UNSIGNED COMMENT '员工年龄';-- 修改表 `employees` 中的列 `name`,将其名称更改为 `full_name` 并将数据类型更改为 `VARCHAR(255)`
ALTER TABLE employees CHANGE name full_name VARCHAR(255) COMMENT '员工全名';-- 删除表 `employees` 中的列 `email`
ALTER TABLE employees DROP email;-- 将表 `employees` 重命名为 `staff`
ALTER TABLE employees RENAME TO staff;
(5)truncate table 表名;
TRUNCATE TABLE 是 MySQL 中用于快速清空表数据的 SQL 语句,它会删除表中的所有记录,但保留表的结构、列、索引和约束。(其实是删除重新创建了一个)
-- 清空 `employees` 表中的所有数据
TRUNCATE TABLE employees;
总结:
我们详细了解了MySQL中的各种数据类型,包括数值类型、字符串类型和日期类型,并且对每种类型的范围和占用字节大小有了清晰的认识。此外,我们深入学习了DDL,接着我会继续更新DML,DQL,DCL的部分。
最后制作不易,给个赞吧…

相关文章:
MySQL 数据类型详解及SQL语言分类-DDL篇
在数据库开发中,选择合适的数据类型和理解SQL语言的分类是非常重要的。今天详细介绍MySQL中的数据类型,包括数值类型、字符串类型和日期类型,并解释SQL语言的四大分类:DDL、DML、DQL和DCL。 1.MySQL 数据类型 SQL语言是不区分大…...
Leet Code 128-最长连续序列【Java】【哈希法】
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出:4 …...
网络协议(概念版)
通讯:首先要得知对方的IP地址。 最终是根据MAC地址(网卡地址),输送数据到网卡,被网卡接收。 如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理;如果目标MAC地址不是自己,…...
Pulsar官方文档学习笔记——消息机制
pulsar 基于3.x最新官方文档学习记录 概念与架构 典型的推送订阅模式。生产者发送消息,消费者订阅topic消费信息并回应ACK。订阅创建后,Pulsar会保留所有消息。仅消息被所有订阅 成功消费了才会丢弃(可以配置消息保留机制保留一定量&#…...
PyTorch--残差网络(ResNet)在CIFAR-10数据集进行图像分类
完整代码 import torch import torch.nn as nn import torchvision import torchvision.transforms as transforms# Device configuration device torch.device(cuda if torch.cuda.is_available() else cpu)# Hyper-parameters num_epochs 80 batch_size 100 learning_rate…...
ETAS工具链自动化实战指南<一>
----自动化不仅是一种技术,更是一种思维方式,它将帮助我们在快节奏的工作环境中保持领先! 目录 往期推荐 场景一:SWC 之间 port自动连接 命令示例 参数说明 场景二:SWC与ECU 自动映射 命令示例 参数说明 场景三&…...
疫情期间我面试了13家企业软件测试岗位,一些面试题整理
项目的测试流程 拿到需求文档后,写测试用例 审核测试用例 等待开发包 部署测试环境 冒烟测试(网页架构图) 页面初始化测试(查看数据库中的数据内容和页面展示的内容是否一致,并且是否按照某些顺序排列)…...
PINCE——Linux 原生游戏内存修改器,一款替代 Cheat Engine 的强大游戏修改器,Linux 游戏玩家必备神器!
PINCE——Linux 原生游戏内存修改器,一款替代 Cheat Engine 的强大游戏修改器,Linux 游戏玩家必备神器! PINCE 是 GNU Project Debugger(GDB) 的前端/反向工程工具,常用作程序调试器,主要用于游戏领域,修改…...
为IntelliJ IDEA安装插件
安装插件 插件是开发工具的扩展程序,通常由第三方提供,当安装了插件后,原开发工作的菜单、按钮等开发环境可能会发生变化,例如出现了新的菜单项,或出现了新的按钮,甚至一些全新的编码方式,通常…...
ES6 Promise
ES6 Promise 对象 一、概述 是异步编程的一种解决方案。 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。 Promise 状态 状态的特点 Promise 异步操作有三种状态:pending(进行中)、fulfilled(…...
html+css 实现hover 凹陷按钮
前言:哈喽,大家好,今天给大家分享html+css 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、原理解析💡1.这是一个,hover时凹陷的效果。每个按钮是一个button…...
什么是负载均衡?负载均衡器如何运作?
往期文章 负载均衡器:LVS、Nginx、HAproxy如何选择? 目录 往期文章什么是负载均衡?为什么需要负载均衡?负载均衡工作原理?静态负载均衡算法动态负载均衡算法 参考 什么是负载均衡? 负载均衡是一种网络技术…...
(Arxiv-2023)潜在一致性模型:通过少步推理合成高分辨率图像
潜在一致性模型:通过少步推理合成高分辨率图像 Paper Title: Latent Consistency Models: Synthesizing High-Resolution Images with Few-Step Inference Paper是清华发表在Arxiv 2023的工作 Paper地址 Code地址 ABSTRACT 潜在扩散模型 (LDM) 在合成高分辨率图像方…...
Unity与UE,哪种游戏引擎适合你?
PlayStation vs Xbox,Mario vs Sonic,Unreal vs Unity?无论是游戏主机、角色还是游戏引擎,人们总是热衷于捍卫他们在游戏行业中的偏爱。 专注于游戏引擎,Unity和Unreal Engine(简称UE4)是目前市…...
这五本大模型书籍,把大模型讲的非常详细,收藏我这一篇就够了
当然可以。在当前的大模型时代,随着自然语言处理(NLP)技术的迅速发展,出现了许多优秀的书籍来帮助读者理解这些复杂的技术。以下是几本值得推荐的大模型书籍,它们涵盖了从基础理论到高级实践的内容,可以帮助…...
伊朗通过 ChatGPT 试图影响美国大选, OpenAI 封禁多个账户|TodayAI
OpenAI 近日宣布,他们已经封禁了一系列与伊朗影响行动有关的 ChatGPT 账户,这些账户涉嫌利用该 AI 工具生成并传播与美国总统选举、以色列 – 哈马斯战争以及奥运会等相关的内容。 OpenAI 表示,这些账户与一个名为 “Storm-2035” 的秘密伊朗…...
windows系统如何走后面之windows系统隐藏账户
系统隐藏账户是一种最为简单有效的权限维持方式,其做法就是让攻击者创建一个新的具有管理员权限的隐藏账户,因为是隐藏账户,所以防守方是无法通过控制面板或命令行看到这个账户的。 自然我们需要一些前提条件,比如说有一个网站&am…...
Elasticsearch(ES)(版本7.x)数据更新后刷新策略RefreshPolicy
Elasticsearch(ES)(版本7.x)数据更新后刷新策略RefreshPolicy 介绍 ES数据写入后,默认1s后才会被搜索到(refresh_interval为1); 这样可能是考虑到性能问题,毕竟实时IO 消耗较多资源 造成的问题 例如一个索引现在有…...
【运维】从一个git库迁移到另一个库
工作目录: /home/java/hosts 10.60.100.194 脚本 hosts / hostsShell GitLab (gbcom.com.cn) 核心代码...
and design vue表格列宽度拖拽,vue-draggable-resizable插件使用
and design vue2版的table表格不能拖拽列的宽度,通过vue-draggable-resizable插件实现 我用的是and design 1.7.8的版本,先下插件 yarn add vue-draggable-resizable2.1.0我这版本的and design用最新3.0.0以上的插件会有问题,实现不了效果&a…...
开发提效新思路:用快马平台打造你的个性化qoderwork代码片段工厂
今天想和大家分享一个提升前端开发效率的实用思路 - 用InsCode(快马)平台打造自己的代码片段工厂。作为一个经常需要重复编写UI组件的前端开发者,我发现这个方案能显著减少重复劳动。 痛点分析 每次新项目都要从零开始写导航栏、页脚这些基础组件特别浪费时间。虽然…...
挖掘机伸缩臂的原理
挖掘机伸缩臂是装载于挖掘机上的一种特殊工作装置,旨在灵活扩展挖掘机的作业半径、挖掘深度。它集挖掘机、起重机、抓木器等多种工程机械结构的优点于一体,结构紧凑且重量轻,操作简便,作业效率高。挖掘机伸缩臂的工作原理主要依赖…...
Graphormer应用场景:材料科学中新型催化剂吸附能预测落地实践
Graphormer应用场景:材料科学中新型催化剂吸附能预测落地实践 1. 引言:催化剂设计的挑战与机遇 在材料科学领域,催化剂设计一直是一项既关键又具有挑战性的任务。传统催化剂开发过程往往需要耗费数月甚至数年的时间,研究人员需要…...
洛谷P1678烦恼的高考志愿题解
一、题目理解输入:第一行、m所学校,n位学生第二行、m个预计录取分数第三行、n个学生估分成绩输出:最小不满意度之和二、解题思路其实这题就是简单的二分,对于我这种菜鸟来说,咱就用最简单最好理解的方式来写。1、首先观…...
企微私域工具数据安全与合规:5个必查项
某公司用了半年企微私域工具,突然发现客户手机号被工具厂商用来发营销短信。法务一查,原来是协议里写了“数据可用于优化产品”。选【企微私域工具】,数据安全比功能更重要。今天列出5个必须检查的安全合规点。企微工具选择要把安全放第一位&…...
用快马平台实践vibe coding:5分钟构建你的音乐可视化应用原型
最近在探索一种叫"vibe coding"的编程方式,简单来说就是跟着感觉走,先抓住创意灵感再考虑具体实现。正好发现InsCode(快马)平台特别适合这种创作方式,今天就带大家用5分钟做个音乐可视化应用,完全不需要从零开始写代码。…...
一键定位手机号码:免费开源的地理位置查询神器
一键定位手机号码:免费开源的地理位置查询神器 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mirrors/lo/…...
Spring Data事务管理与多租户架构:企业级数据隔离终极指南
Spring Data事务管理与多租户架构:企业级数据隔离终极指南 【免费下载链接】spring-data-examples Spring Data Example Projects 项目地址: https://gitcode.com/gh_mirrors/sp/spring-data-examples Spring Data事务管理与多租户架构是企业级应用开发中的两…...
如何高效实现多尺度时间序列分类:InceptionTime深度学习框架深度解析
如何高效实现多尺度时间序列分类:InceptionTime深度学习框架深度解析 【免费下载链接】InceptionTime 项目地址: https://gitcode.com/gh_mirrors/in/InceptionTime 时间序列分类是金融风控、工业监测、医疗诊断等领域的核心任务,InceptionTime作…...
快速SEO排名服务需要多长时间见效_快速SEO排名服务有哪些常见的手段
快速SEO排名服务需要多长时间见效 在当今数字化时代,网站的在线可见度对于企业的成功至关重要。快速SEO排名服务应运而生,旨在帮助企业尽快在搜索引擎上获得更好的排名,从而提高流量和业务。但是,很多人都会疑惑,快速…...
