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

MySQL之DDL语言

目录

一、数据库的基本操作

1、创建数据库

语法:

示例:

2、修改数据库

语法:

示例:

3、删除数据库

语法:

示例:

4、查询数据库

语法:

5、使用数据库

语法:

二、数据表的基本操作

1、创建数据表

语法:

示例:

2、重命名数据表

语法:

示例:

3、删除数据表

语法:

示例:

4、查询数据表

语法:

三、表字段基本操作

1、添加列

语法:

示例:

2、修改列

语法一:

示例一:

语法二:

示例二:

区别

3、删除列

语法:

示例:


一、数据库的基本操作

1、创建数据库

  • 语法:

CREATE DATABASE [IF NOT EXISTS] database_name
[CHARACTER SET charset_name]
[COLLATE collation_name];

 关键字说明:

  1. CREATE DATABASE:用于创建一个新的数据库。

  2. [IF NOT EXISTS]:可选关键字,如果指定,当数据库已存在时,不会抛出错误,而是忽略创建操作。

  3. database_name:要创建的数据库的名称。

  4. [CHARACTER SET charset_name]:可选关键字,用于指定数据库的字符集。常见的字符集有utf8、utf8mb4等。

  5. [COLLATE collation_name]:可选关键字,用于指定数据库的校对规则。校对规则决定了字符的比较方式,例如utf8_general_ci、utf8mb4_unicode_ci等。

  • 示例:

CREATE DATABASE IF NOT EXISTS mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

2、修改数据库

  • 语法:

ALTER DATABASE database_name
[CHARACTER SET charset_name]
[COLLATE collation_name];

 关键字说明:

  1. ALTER DATABASE:用于修改现有数据库的属性。

  2. database_name:要修改的数据库的名称。

  3. [CHARACTER SET charset_name]:可选关键字,用于修改数据库的字符集。

  4. [COLLATE collation_name]:可选关键字,用于修改数据库的校对规则。

  • 示例:

ALTER DATABASE mydb
CHARACTER SET utf8;

3、删除数据库

  • 语法:

DROP DATABASE [IF EXISTS] database_name;

 关键字说明:

  1. DROP DATABASE:用于删除现有数据库。

  2. [IF EXISTS]:可选关键字,如果指定,当数据库不存在时,不会抛出错误,而是忽略删除操作。

  3. database_name:要删除的数据库的名称。

  • 示例:

DROP DATABASE IF EXISTS mydb;

4、查询数据库

  • 语法:

-- 用于查询所有数据库
SHOW DATABASES;

5、使用数据库

  • 语法:

-- 切换使用数据库,database_name:要切换的数据库名称
USE database_name;

二、数据表的基本操作

1、创建数据表

  • 语法:

CREATE TABLE table_name (
    column1 data_type [constraint],
    column2 data_type [constraint],
    ...
)[CHARACTER SET charset_name];

 关键字说明:

  1. CREATE TABLE:用于创建一个新的表。

  2. table_name:要创建的表的名称。

  3. column1, column2, ...:表中的列名。

  4. datatype:列的数据类型,例如INT、VARCHAR(50)、DATE等。

  5. [constraint]:列的约束(如 PRIMARY KEY、NOT NULL 等)。

  6. [CHARACTER SET charset_name]:可选关键字,用于指定数据库的字符集。常见的字符集有utf8、utf8mb4等。

  7. 数据类型和约束详见:MySQL之字段类型和SQL约束

  • 示例:

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    stu_number CHAR(12) NOT NULL UNIQUE,
    age INT,
    gender ENUM('male', 'female') NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

2、重命名数据表

  • 语法:

RENAME TABLE old_table_name TO new_table_name;

关键字说明:

  1. RENAME TABLE:用于重命名现有表。

  2. old_table_name:旧表的名称。

  3. TO:表示重命名到新的名称。

  4. new_table_name:新表的名称。

  • 示例:

RENAME TABLE students TO Students;

3、删除数据表

  • 语法:

DROP TABLE [IF EXISTS] table_name;

关键字说明:

  1. DROP TABLE:用于删除现有表。

  2. [IF EXISTS]:可选关键字,如果指定,当表不存在时,不会抛出错误,而是忽略删除操作。

  3. table_name:要删除的表的名称。

  • 示例:

DROP TABLE IF EXISTS users;

4、查询数据表

  • 语法:

-- 用于查询所有数据表
SHOW TABLES;

三、表字段基本操作

1、添加列

  • 语法:

ALTER TABLE table_name
ADD column_name datatype [constraint];

 关键字说明:

  1. ALTER TABLE:用于修改现有表的结构。

  2. table_name:要修改的表的名称。

  3. ADD:表示要添加一个新的列。

  4. column_name:新列的名称。

  5. datatype:新列的数据类型。

  6. [constraint]:列的约束(如 PRIMARY KEY、NOT NULL 等)。

  • 示例:

ALTER TABLE Students
ADD email VARCHAR(100);

2、修改列

  • 语法一:

ALTER TABLE table_name
CHANGE old_column_name new_column_name datatype [constraint];

 关键字说明:

  1. ALTER TABLE:用于修改现有表的结构。

  2. table_name:要修改的表的名称。

  3. CHANGE:用于修改现有列的名称与数据类型。

  4. old_column_name:要修改的列的名称。

  5. new_column_name:要修改的列的新名称。

  6. datatype:列的数据类型。

  7. [NOT NULL | NULL]:可选关键字,用于指定列是否可以为空。

  8. [DEFAULT default_value]:可选关键字,用于指定列的默认值。 

  • 示例一:

ALTER TABLE Students
CHANGE name stu_name VARCHAR(50) NOT NULL;
  • 语法二:

ALTER TABLE table_name
MODIFY column_name datatype [constraint];

 关键字说明:

  1. ALTER TABLE:用于修改现有表的结构。

  2. table_name:要修改的表的名称。

  3. MODIMOFY:表示要修改现有列的类型。

  4. column_name:要修改的列的名称。

  5. datatype:列的数据新类型。

  6. [constraint]:列的约束(如 PRIMARY KEY、NOT NULL 等)。

  • 示例二:

ALTER TABLE Students
MODIFY age TINYINT;
  • 区别

CHANGE 关键字可以修改列名称或者列数据类型,而 MODIMOFY 关键字只能修改列的类型。

3、删除列

  • 语法:

ALTER TABLE table_name
DROP column_name;

 关键字说明:

  1. ALTER TABLE:用于修改现有表的结构。

  2. table_name:要修改的表的名称。

  3. DROP:表示要删除一个列。

  4. column_name:要删除的列的名称。

  • 示例:

ALTER TABLE Students
DROP email;

http://www.kler.cn/a/505771.html

相关文章:

  • 编译pytorch——cuda-toolkit-nvcc
  • Java面试总结(1)
  • 总结SpringBoot项目中读取resource目录下的文件多种方法
  • VUE3 VITE项目在 npm 中,关于 Vue 的常用命令有一些基础命令
  • Vue.js组件开发-使用地图绘制轨迹
  • FLASK 上传文件
  • 新版 MacOS 无法从 /usr/local/lib 加载动态链接库的解决办法
  • 算法每日双题精讲 —— 二分查找(二分查找,在排序数组中查找元素的第一个和最后一个位置)
  • Windows 蓝牙驱动开发-安装蓝牙设备
  • java 设计模式 工厂模式
  • JavaScript前端高效性能优化策略:防抖和节流的详细介绍
  • 【JavaWeb】JavaWeb入门之Tomcat详解
  • CNCF云原生计算基金会
  • Yolo 对象检测系列更新无止境,Ultralytics 发布 Yolov11 更快,更强
  • 0115java面经
  • 【Rust自学】12.7. 使用环境变量
  • SpringBoot开发——Spring Boot 自动化测试框架的高效运用
  • Java并发编程——线程池(基础,使用,拒绝策略,命名,提交方式,状态)
  • Mybatis-底层是如何解决sql注入增删改查操作--删除操作
  • VUE请求返回二进制文件流下载文件例子
  • doc、pdf转markdown
  • STM32H7通过CUBEMX初始化移植LWIP,DHCP建立RAW TCP服务器,不停发成功
  • Spring MVC复杂数据绑定-绑定集合
  • VUE3 + Ant Design Vue4 开发笔记
  • MySQL表的增删改查(进阶)-下篇
  • 【Qt】QThread总结