MySQL 数据类型详解及SQL语言分类-DDL篇

news2024/9/21 12:38:11

        在数据库开发中,选择合适的数据类型和理解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 语言分类

  1. DDL (Data Definition Language): 数据定义语言,用于定义数据库结构。

    • CREATE: 创建数据库或表。
    • ALTER: 修改数据库或表结构。
    • DROP: 删除数据库或表。
  2. DML (Data Manipulation Language): 数据操作语言,用于数据的增删改。

    • INSERT: 插入数据。
    • UPDATE: 更新数据。
    • DELETE: 删除数据。
  3. DQL (Data Query Language): 数据查询语言,用于查询数据。

    • SELECT: 查询数据。
  4. 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 - GPL

Copyright (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的部分。

最后制作不易,给个赞吧…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2039468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 126类和对象_ 运算符重载_仿函数调用

126类和对象_ 运算符重载_仿函数调用 学习内容 仿函数调用 结果 代码 #include<iostream> using namespace std;//cout 在这里&#xff0c;没有它会报错 #include<string>//126类和对象_ 运算符重载_仿函数调用 //学习内容 //仿函数调用class MyPrint { …

【在线+sdwebui】在线免费运行stable-diffusion-webui (无需配置环境)

在线运行平台: https://platform.virtaicloud.com/gemini_web/auth/register 一、进入项目页面启动环境 项目&#xff1a;https://open.virtaicloud.com/web/project/detail/460841914028511232 1.1 点击运行 1.2 克隆环境到注册后的平台 1.3 自动适配项目最低配置的显卡 &…

Java面试题--JVM大厂篇之高并发Java应用的秘密武器:深入剖析GC优化实战案例

引言: 晚上好,Java开发者们!在高并发的现代应用中,垃圾回收器(GC)是Java性能优化的重要环节。尤其在CMS(Concurrent Mark-Sweep)GC曾经担任主角的日子里,适当的调优和优化措施至关重要。本篇文章将通过三个实际案例,探讨如何在不同场景中优化CMS GC,为你揭示Java性能…

前端如何使用Nginx代理dist网页,代理websocket,代理后端

本文将指导您如何配置Nginx以代理前后端分离的项目&#xff0c;并特别说明了对WebSocket的代理设置。通过本教程&#xff0c;您将能够实现一次性配置&#xff0c;进而使项目能够在任意局域网服务器上部署&#xff0c;并可通过IP地址或域名访问服务。 笔者建议 先速览本文了解大…

再见Figma!!新的设计,代码协作神器!【送源码】

软件介绍 Penpot 是一款专门用来帮助设计师和开发者更好地合作的软件。它可以让设计师轻松地做出漂亮的设计稿&#xff0c;还能让这些设计稿变成真正的网站或者应用的一部分。这样&#xff0c;设计师和开发者之间就不会因为沟通不畅而产生麻烦了。 Penpot 专为设计师与开发者之…

Android 下载安装配置

文章目录 Android Studio 下载安装配置1. 下载JDK2. JDK环境配置&#xff1a;3. 测试JDK是否安装成功&#xff1a;4. 下载Android Studio:5. 配置Android Studio:6. android studio提速方法1&#xff08;不行&#xff09;方法2&#xff1a;(很行&#xff09; Android Studio 下…

OpenDDS集中发现服务DCPSInfoRepo联邦机制

OpenDDS在提供DCPSInfoRepo集中发现服务的基础上&#xff0c;又提供了集中发现服务DCPSInfoRepo的联邦功能&#xff0c;实际上就是集群功能。 联邦Federation间的通信主题&#xff0c;用于Federation联邦节点间DDS对象的资源库一致性迁移&#xff0c;包括 1&#xff09;OwnerUp…

力扣热题100_图论_994_腐烂的橘子

文章目录 题目链接解题思路解题代码 题目链接 994. 腐烂的橘子 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b; 值 1 代表新鲜橘子&#xff1b; 值 2 代表腐烂的橘子。 每分钟&#xff0c;腐烂的橘子 周…

数据可视化实用干货分享

在当今的数字化时代&#xff0c;数据已成为企业决策的重要基石。然而&#xff0c;面对海量的数据&#xff0c;如何高效地理解、分析和应用这些数据&#xff0c;成为企业面临的一大挑战。数据可视化作为一种将数据转化为图形或图表的技术&#xff0c;为企业提供了强有力的支持。…

第八季完美童模全球人气总冠军【杜姗珊】至高加冕 见证星芒风采!

7月20-23日&#xff0c;2024第八季完美童模全球总决赛在青岛圆满落幕&#xff0c;在盛大的颁奖典礼上&#xff0c; 全球观众网友通过现场参与和网络直播的方式&#xff0c;共同见证了新一代“模”王诞生&#xff01;在众多优秀的小超模中&#xff0c;来自上海的女孩杜姗珊从本次…

SRGAN:使用生成对抗网络对图像进行超分辨率重构

SRGAN&#xff1a;使用生成对抗网络对图像进行超分辨率重构 前言相关介绍SRGAN 的工作原理核心思想主要组件训练目标 优点缺点总结 实验环境项目地址LinuxWindows 项目结构具体用法准备数据集进行训练进行测试测试基准数据集测试单张图像测试单个视频 参考文献 前言 由于本人水…

深度剖析:Jenkins构建任务无法中断的原因及解决方案

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

20240814使用串口控制MC-105Q的机芯确认变焦

20240814使用串口控制MC-105Q的机芯确认变焦 2024/8/14 20:44 缘起&#xff1a;使用的是LVDS OUT的MC-105Q的机芯&#xff0c;最近需要查看光学/电子变焦。 打开电子变焦&#xff1a;81 01 04 06 02 ff 放大&#xff1a;81 01 04 07 02 FF 缩小&#xff1a;81 01 04 07 03 FF 串…

想要在数据治理领域脱颖而出?了解CDGA认证的重要性

CDGA认证是专注于数据治理领域的专业资格证明。 CDGA&#xff08;即认证数据治理助理&#xff09;是数据管理专家认证的一部分&#xff0c;旨在验证和展示个人在数据治理方面的专长和技巧。 下面是关于CDGA认证的详细说明&#xff1a; 1. CDGA认证的组织背景&#xff1a;DAM…

Vue.js-分析

目录 Vue.js基本概念和特性Vue.js生态系统Vue.js版本和更新Vue.js学习Vue.js进阶问题Vue.js中虚拟DOM的工作原理虚拟DOM的创建差异算法应用更新 Vue.js的组件化编程模型优势Vue 3相比Vue 2改进之处 Vue.js Vue.js&#xff08;通常简称为 Vue&#xff09;是一个开源的前端JavaS…

Python使用configparser管理配置文件

前言 在 Python 项目开发中&#xff0c;配置文件通常用于存储配置信息&#xff0c;例如数据库连接参数、日志设置、应用程序行为等。这些信息可以与代码分离&#xff0c;使得应用程序更易于维护和管理。Python 的标准库中提供了一个非常有用的模块——configparser&#xff0c…

鸿蒙AI功能开发【卡证识别控件】场景视觉化服务

卡证识别控件 介绍 本示例展示了使用视觉类AI能力中的卡证识别能力。 本示例模拟了在应用里&#xff0c;跳转卡证识别控件&#xff0c;获取到验证结果并展示出来。 需要使用hiai引擎框架卡证识别验证接口kit.VisionKit.d.ts。 效果预览 使用说明&#xff1a; 在手机的主屏…

sp eric靶机渗透测试

一、靶机下载地址 https://www.vulnhub.com/entry/sp-eric,274/ 二、信息收集 1、主机发现 # 使用命令 nmap 192.168.145.0/24 -sn | grep -B 2 "00:0C:29:FD:57:BE" 2、端口扫描 # 使用命令 nmap 192.168.145.211 -p- -sV 3、指纹识别 # 使用命令 whatweb 192…

Cesium天空盒子(Skybox)制作(js代码)和显示

介绍 在Cesium中&#xff0c;星空背景是通过天空盒子方式&#xff08;6张图片&#xff09;来显示的&#xff0c;原生的图片分辨率太低&#xff0c;本项目用于生成天空盒子的6张图片。最终生成的6个图片大小约为500kb(每个)&#xff0c;格式为jpg&#xff0c;总共的恒星数目约为…

【案例45】报表计算卡死问题排查

问题现象 月结期间报表计算没有反映&#xff0c;报表计算不出结果。情况十分着急。 问题分析 查看数据库发现&#xff0c;数据库有锁。相关锁源头的blocking_session为1144。 查看1144的执行机器名为nctest&#xff0c;非NC生产环境所在机器 由程序触发&#xff0c;很有可能在…