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

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 语言分类

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

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

http://www.lryc.cn/news/428307.html

相关文章:

  • Leet Code 128-最长连续序列【Java】【哈希法】
  • 网络协议(概念版)
  • Pulsar官方文档学习笔记——消息机制
  • PyTorch--残差网络(ResNet)在CIFAR-10数据集进行图像分类
  • ETAS工具链自动化实战指南<一>
  • 疫情期间我面试了13家企业软件测试岗位,一些面试题整理
  • PINCE——Linux 原生游戏内存修改器,一款替代 Cheat Engine 的强大游戏修改器,Linux 游戏玩家必备神器!
  • 为IntelliJ IDEA安装插件
  • ES6 Promise
  • html+css 实现hover 凹陷按钮
  • 什么是负载均衡?负载均衡器如何运作?
  • (Arxiv-2023)潜在一致性模型:通过少步推理合成高分辨率图像
  • Unity与UE,哪种游戏引擎适合你?
  • 这五本大模型书籍,把大模型讲的非常详细,收藏我这一篇就够了
  • 伊朗通过 ChatGPT 试图影响美国大选, OpenAI 封禁多个账户|TodayAI
  • windows系统如何走后面之windows系统隐藏账户
  • Elasticsearch(ES)(版本7.x)数据更新后刷新策略RefreshPolicy
  • 【运维】从一个git库迁移到另一个库
  • and design vue表格列宽度拖拽,vue-draggable-resizable插件使用
  • 使用hexo搭建个人博客
  • java geotool构建地理点线面
  • C# 中 Grpc服务端调用客户端方法
  • Arthas相关命令
  • 2024年江苏省职业院校技能大赛 移动应用与开发中职赛项规程
  • 2024 Google 开发者大会,沉浸式体验AI社会公益
  • OpenCV(开源计算机视觉库)
  • Java二十三种设计模式-责任链模式(17/23)
  • Electron31-ViteAdmin桌面端后台|vite5.x+electron31+element-plus管理系统Exe
  • 鸿蒙HarmonyOS实战:创建NDK工程、毕昇编译器
  • 网络安全-防火墙初步认识。