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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值