MySql(十八)DDL语言

本文详细介绍了SQL中的数据定义语言(DDL),包括库和表的创建、修改、删除操作,以及表的复制方法。通过具体语法示例,如创建、修改数据库和表结构,以及复制表结构和数据,帮助读者掌握DDL的使用。

文章目录

DDL
    库的管理
    表的管理
    表的复制
    案例练习

DDL

DDL:数据定义语言(库和表的管理)

库的管理:创建、修改、删除
表的管理:创建、修改、删除
使用到的关键字:

创建:create

修改(修改库或表的结构):alter

删除(删除库或表的结构):drop

注:前面的修改(update)和删除(delete)均指的是对表中的数据的修改和删除;

​    这里的alter和drop指的是对库或表结构的操作

库的管理

1.库的创建

create database 数据库名; //如果数据库存在则会报错;不存在则创建成功

create database if not exists 数据库名; //如果数据库存在则不创建;不存在则创建

2.库的修改

更改数据库的字符集

alter database 数据库名

character set gbk;

3.库的删除

drop database 数据库名;

drop database if exists 数据库名;

表的管理

1.表的创建

create table 表名(

​    列名 列类型【(长度) 约束】,

​    列名 列类型【(长度) 约束】,

​    …

​    列名 列类型【(长度) 约束】

);

2.表的修改

修改内容:修改表名或列名、修改列的类型或约束、列的删除和添加

修改表名

alter table 表名 rename to 新表名;

eg:alter table student rename to studentInfo;

修改列名

alter table 表名 change column 旧列名 新列名 新列类型;

eg:alter table student change column student_age age int;

修改列的类型或约束

alter table 表名 modify column 要修改的列名 新类型;

eg:alter table student modigy column age tinyint;

添加新列

alter table 表名 add column 列名 列类型;

eg:alter table student add column salary double;

删除列

alter table 表名 drop column 列名;

eg: alter table student drop column salary;

总结:

alter table 表名 add|drop|modify|change column 列名 列类型 约束;

3.表的删除

drop table 表名;

drop table if exists 表名;

show tables; //查看当前库的所有表

表的复制

1.复制表的结构

create table 新表名 like 旧表名

2.复制表的结构和数据

create table 新表名

select * from 旧表名;

3.仅仅复制表的某些列的字段,不复制任何数据

create table 新表名

select id,name from 旧表名

where 1=2;

案例练习

案例1:在mytest库中创建一个test表并将myemployees库中的departments表中的数据添加到表test中

CREATE TABLE test
SELECT id,name FROM myempoyees.departments;

 

本文原文地址:https://blog.youkuaiyun.com/qq_43952245/article/details/90573829

基于粒子群优化算法的p-Hub选址优化(Matlab代码实现)内容概要:本文介绍了基于粒子群优化算法(PSO)的p-Hub选址优化问题的研究与实现,重点利用Matlab进行算法编程和仿真。p-Hub选址是物流与交通网络中的关键问题,旨在通过确定最优的枢纽节点位置和非枢纽节点的分配方式,最小化网络总成本。文章详细阐述了粒子群算法的基本原理及其在解决组合优化问题中的适应性改进,结合p-Hub中转网络的特点构建数学模型,并通过Matlab代码实现算法流程,包括初始化、适应度计算、粒子更新与收敛判断等环节。同时可能涉及对算法参数设置、收敛性能及不同规模案例的仿真结果分析,以验证方法的有效性和鲁棒性。; 适合人群:具备一定Matlab编程基础和优化算法理论知识的高校研究生、科研人员及从事物流网络规划、交通系统设计等相关领域的工程技术人员。; 使用场景及目标:①解决物流、航空、通信等网络中的枢纽选址与路径优化问题;②学习并掌握粒子群算法在复杂组合优化问题中的建模与实现方法;③为相关科研项目或实际工程应用提供算法支持与代码参考。; 阅读建议:建议读者结合Matlab代码逐段理解算法实现逻辑,重点关注目标函数建模、粒子编码方式及约束处理策略,并尝试调整参数或拓展模型以加深对算法性能的理解。
<think>好的,我需要回答用户关于MySQLDDL语言及其用途的问题。首先,我应该回顾一下用户提供的引用资料,确保信息准确。 根据引用[1],DDL操作有INPLACE和COPY两种方式,但并不是所有操作都支持INPLACE,需要查官方文档。引用[2]提到了删除数据库时使用IF EXISTS,以及USE语句。引用[3]和[4]都提到了创建数据库时指定字符集的例子,以及创建表的基本语法。 用户的问题是要了解DDL的介绍及使用,所以应该从定义开始,说明DDL是什么,包括哪些语句,比如CREATE、ALTER、DROP等。然后分数据库操作和表操作两部分详细说明,每个部分举出常用语句的例子,并注意格式要求,行内数学表达式用$...$,独立公式用$$...$$。例如,创建数据库的语法可能需要用独立公式展示。 需要检查LaTeX语法是否正确,比如关键字如CREATE DATABASE可能需要用代码块而不是数学公式。可能用户提供的示例中有数学表达式,但SQL语句应该用代码块。这里可能需要调整,避免混淆。 另外,用户要求生成相关问题,我需要考虑常见的DDL相关问题,比如用途、注意事项、与DML的区别等。同时,引用资料中的内容要适当标注,比如在提到字符集时引用[3]和[4],在INPLACE操作时引用[1]。 最后,确保回答结构清晰,分点说明,使用中文,并正确应用引用标识。例如,在讨论字符集时添加[^3][^4],在删除数据库时提到[^2]。</think>### MySQL DDL语言介绍及使用 #### 一、DDL定义与用途 数据定义语言(Data Definition Language,DDL)是SQL的子集,主要用于定义或修改数据库对象(如数据库、表、索引)的结构。其核心操作包括: - **CREATE**:创建数据库或表 - **ALTER**:修改现有对象结构 - **DROP**:删除对象 - **TRUNCATE**:清空表数据(保留结构) - **RENAME**:重命名对象 #### 二、数据库级操作 1. **创建数据库** ```sql CREATE DATABASE [IF NOT EXISTS] 数据库名 [CHARSET '字符集'] [COLLATE '排序规则']; ``` 示例: ```sql CREATE DATABASE db1 CHARSET 'utf8mb4'; -- 指定UTF-8编码[^3][^4] ``` 2. **删除数据库** ```sql DROP DATABASE [IF EXISTS] 数据库名; -- 避免删除不存在的库报错[^2] ``` 示例: ```sql DROP DATABASE IF EXISTS test_db; ``` 3. **切换数据库** ```sql USE 数据库名; -- 后续操作默认在该库执行[^2] ``` #### 三、表级操作 1. **创建表** ```sql CREATE TABLE [IF NOT EXISTS] 表名 ( 列名1 数据类型 [约束], 列名2 数据类型 [约束], ... [PRIMARY KEY(列名)] ) [ENGINE=存储引擎] [CHARSET=字符集]; ``` 示例: ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB CHARSET=utf8mb4; ``` 2. **修改表结构** - 添加列: ```sql ALTER TABLE 表名 ADD 列名 数据类型 [AFTER 现有列名]; ``` - 修改列类型: ```sql ALTER TABLE 表名 MODIFY 列名 新数据类型; ``` - 删除列: ```sql ALTER TABLE 表名 DROP COLUMN 列名; ``` - 在线DDL操作: ```sql ALTER TABLE 表名 ALGORITHM=INPLACE, LOCK=NONE; -- 减少锁表时间[^1] ``` 3. **删除表** ```sql DROP TABLE [IF EXISTS] 表名; -- 连带删除索引等关联对象 ``` #### 四、性能优化建议 1. 大表修改时优先选择支持`ALGORITHM=INPLACE`的操作[^1] 2. 避免在生产高峰执行DDL 3. 使用`pt-online-schema-change`工具实现无锁表结构变更 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值