DDL

DDL

一、DDL的定义

1、DDL的什么

DDL全称(data defination language)数据库定义语言,主要是建表、删除表、修改表字段等操作;DDL是属于SQL的类型之一,SQL(Structure Query Language)结构化查询语言,SQL有四个分类,分别是

DQL(data query language)数据查询语言 select操作

DML(data manipulation language)数据操作语言,主要是数据库增删改三种操作

DDL(data defination language)数据库定义语言,主要是建表、删除表、修改表字段等操作

DCL(data control language)数据库控制语言

2、DDL的作用

DDL主要是用来对数据库的创建,删除和修改的,所以DDL主包括create(创建),drop(删除),alter(修改)这三条语句。这个三条语句可以对表和数据库进行操作。

二、MySQL的DDL

1、create

1、对数据库进行操作的语法:create database 数据库名;

举例:

create database mysql;

2、对表的操作的语法: create table 表名(字段名 数据类型 约束);

举例:

create table if not exists `student`(
	`stuNo` int(4) not null comment '学号' primary key,
    `stuName` varchar(5) not null comment '学生姓名'
) comment = "学生表";

其中 “ ` ” 这个符号是在键盘esc的下面一个按键,这个符号可以使运行时间更快,数据少可能看不出来,但是数据多了效果就会明显一些;

not null:是设置不为空的;

comment:是用来写注释的,就是注释这个字段是什么意思;

primary key :使用来设置主键的;

exists :这是用来判断数据库或表是否存在,存在返回true,不存在返回false;

not exists:这是用来判断数据库或表是否不存在,存在返回false,不存在返回true;

if :是用来判断exists返回值的。

2、drop

1、对数据库操作的语法:drop database if not exists 数据库名;

举例:

drop database if not exists `mysql`;

2、对表进行操作的语法:drop table 表名

举例:

drop table if not exists `student`;

3、alter

alter------>修改数据库对象;

1、修改表名的语法:alter table 旧表名 rename 新表名

alter table `student` rename `stu`;

2、添加字段:alter table 表名 add [column] 字段名 数据类型 约束;

#有column
alter table `stu` add column `sex` char(2) not null;
#没有column
alter table `stu` add  `age` int(5) not null;

注意:column是可以省略的,并且结果是一样的,并不是必要。

3、修改表的字段:修改表的字段分两种:change 和 modify;这两个是有区别的,change修改了字段名,数据类型,约束;modify修改了数据类型和约束,没有修改字段名。

​ 1、change语法:alter table 表名 change [column] 原字段名 新字段名 类型 约束;

alter table `stu` change `stuName` `studentName` varchar(10) not null;

​ 2、modify语法:alter table modify [column] 字段名 类型 约束;

alter table modify `stuNo` varchar(4) comment '学号';

4、修改字段约束:

1、主键:alter table 表名 add constraint 主键名 primary key;

alter table `student` add constraint `pk_id` primary key;

注意:一定要有这个表才可以哦,如果没有就会报错;主键名是自己定义的。

2、外键:alter table 外表名 add constraint (外键名) foreign key(外键字段名)references 主键表名(主键字段名);

alter table `result` add constraint `fk_id`  foreign key(`rid`) references `student`(`rid`);

5、删除字段:alter table 表名 drop[column] 字段名;

alter table `student` drop `sex`;

4、字段

1、字段名的命名规则:

​ 1、组成:由字母,数字,下划线,美元符号等一些普通的符号,但是不建议使用普通符号这一类,下划线除外;

​ 2、数据库不区分大小写,一般用下划线(_)区分单词的组成,以英文字母开的

​ 3、不能使用关键字;

2、字段类型:字段类型分为数值,字符串,日期等;

​ 1、数值:整数,小数

​ 整数:int ,bigint

​ 小数: float ,double ,real ,decimal;其中decimal是小数里面比较常用的数据类型

​ 2、字符:char(长度不可变)、varchar(长度可变的),text,blob(大字段数据类型);

注:长度可变和长度不可变的区别是:在指定长度里面,不可变的如果没有足够的字符就会补空格,可变的就会补空格。

​ 3、日期: date(日期),datetime(日期时间),time(时间),timestamp(时间戳,以毫秒的形式保存日期)

​ 4、boolean(布尔):在MySQL里面是没有直接的Boolean类型的,是用tinyint来表示的,真返回1,假返回0。

3、字段约束

1、字段完整性

​ 1、域完整性

​ 实现手段:数据类型,非空(not null),默认值(default)

​ 注:在MySQL里面是没有检查约束的,但是在SQL sever中是有的。

​ 2、实体完整性

​ 实现手段:主键(primary key),自动增长列(auto_increment),唯一键,索引;

​ 3、表完整性

​ 实现手段:外键(foreign key)

​ 4、自定义完整性

​ 实现手段:事务,视图,函数,存储过程……

08-13
### 数据库 DDL 操作包括创建表、修改表、删除表等操作 数据定义语言(DDL)是用于定义和管理数据库对象的 SQL 子集,常见操作包括创建、修改和删除数据库中的表、索引、视图等结构。以下是与表相关的典型 DDL 操作: #### 创建表 创建表是数据库设计的基础步骤,使用 `CREATE TABLE` 语句定义表的结构,包括字段名、数据类型、约束条件等。例如: ```sql CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(100), birth_date DATE ); ``` 该语句定义了一个名为 `users` 的表,包含三个字段:`id`(整数类型,主键)、`name`(最大长度为100的字符串)和 `birth_date`(日期类型)[^4]。 此外,还可以基于查询结果创建表,语法如下: ```sql CREATE TABLE new_table AS SELECT * FROM existing_table WHERE condition; ``` 这种方式常用于数据迁移或创建临时表[^3]。 #### 查询表结构 在创建表之后,可以通过以下语句查看表的结构或建表语句: - 查看当前数据库所有表: ```sql SHOW TABLES; ``` - 查看表结构: ```sql DESC table_name; ``` - 查看建表语句: ```sql SHOW CREATE TABLE table_name; ``` 这些语句有助于验证表的定义是否符合预期,或用于调试和文档记录[^2]。 #### 修改表 使用 `ALTER TABLE` 语句可以对现有表进行修改,包括添加字段、修改字段数据类型、重命名字段、删除字段等操作。例如: - 添加字段: ```sql ALTER TABLE users ADD COLUMN email VARCHAR(100); ``` - 修改字段数据类型: ```sql ALTER TABLE users MODIFY COLUMN email TEXT; ``` - 修改字段名和数据类型: ```sql ALTER TABLE users CHANGE COLUMN email user_email VARCHAR(150); ``` - 删除字段: ```sql ALTER TABLE users DROP COLUMN user_email; ``` 这些操作允许在不重建表的情况下调整其结构,以适应不断变化的业务需求。 #### 删除表 删除表使用 `DROP TABLE` 语句,可以删除一个或多个表。语法如下: ```sql DROP TABLE table_name; ``` 若要删除表并重新创建,可以使用以下语句: ```sql DROP TABLE IF EXISTS table_name; CREATE TABLE table_name (...); ``` 该方式确保表存在时先被删除,再创建新的结构,适用于表结构变更或初始化操作。 #### 创建和管理数据库 除了表的操作,DDL 还包括数据库级别的管理。例如,创建数据库: ```sql CREATE DATABASE my_database; ``` 删除数据库: ```sql DROP DATABASE my_database; ``` 在删除数据库前,通常建议检查其是否存在,以避免错误: ```sql DROP DATABASE IF EXISTS my_database; ``` 这些语句用于管理数据库的整体生命周期,包括创建、删除和切换使用[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值