文章目录

  • 1.说明:
  • 2.分类
  • 3.------------库的管理--------------
    • #一、创建数据库
    • #二、删除数据库
  • 4、----------表的管理--------------
    • 一、数据类型:
      • 1、整型
      • 2、浮点型
      • 3、字符型
      • 4、日期型
      • 5、二进制型
    • 二、常见的约束
      • 说明:
      • 1、NOT NULL 非空约束 :
      • 2、DEFAULT 默认约束 :
      • 3、PRIMARY KEY 主键约束:
      • 4、UNIQUE 唯一约束 :
      • 5、CHECK 检查约束 :mysql不支持,但是兼容
      • 6、FOREIGN KEY 外键约束:
    • 三、创建表:类似创建java类
      • 1、解释:
      • 2、语法:
      • 3.案例:没有添加约束案例
      • 4、案例:添加约束的案例
    • 四、修改表【了解,平常不会这样干】
      • 语法:
      • #1.修改表名
      • #2.添加字段
      • #3.修改字段名
      • #4.修改字段类型
      • #5.删除字段
    • 五、删除表
      • 语法:
      • 案例:删除students表
    • 六、复制表
      • **要数据和表结构做法**:
      • **不要数据只有表结构做法:**
      • 1.仅仅复制表的结构
      • 2.赋值表的结构+数据
      • 3.案例:复制employees表中的last_name,department_id,salary字段到新表 emp表,
      • 4.案例:复制employees表中的last_name,department_id,salary字段到新表 emp表,但不复制数据

1.说明:

Data Define language 数据库定义语言,用于对数据库和表的管理和操作

2.分类

分为库的管理和表的管理

3.------------库的管理--------------

#一、创建数据库

CREATE DATABASE stuDB;

一般会写下面的写法

#一般在创建库之前判断是否存在,存在就不创建,不报异常,不存在,就创建这个库
CREATE DATABASE IF NOT EXISTS stuDB;

#二、删除数据库

DROP DATABASE stuDB;

一般会写下面的写法

#同样为了提高代码容错性,在删除之前判断库是否存在,存在就删除
DROP DATABASE IF EXISTS stuDB;

4、----------表的管理--------------

一、数据类型:

1、整型

TINYINT

SMALLINT

INT

BIGINT

2、浮点型

FLOAT(m,n)
DOUBLE(m,n)
DECIMAL(m,n) 定义价格一般使用,精度不会缺失
m和n可选

3、字符型

CHAR(n):n可选 不可变字符串,默认为1
VARCHAR(n):n必选 可变字符串
TEXT 一大段字符时选用(比如信)
n表示最多字符个数

4、日期型

DATE

TIME

DATETIME 占用8个字节

TIMESTAMP 字节短只占用四个字节

5、二进制型

BLOB 存储图片数据

二、常见的约束

说明:

用于限制表中字段的数据的,从而进一步保证数据表的数据是一致的、准确的、可靠的!

1、NOT NULL 非空约束 :

用于限制该字段为必填项

2、DEFAULT 默认约束 :

用于限制该字段没有填写时,默认显示的数据

3、PRIMARY KEY 主键约束:

用于限制该字段的值不可以重复,设置为主键列的字段默认不能为空,一个表只能有一个主键,
组合主键:但是如果我们设置多列数据为主键,那么三个列为主键,三个列同时相同就没事

4、UNIQUE 唯一约束 :

用于限制该字段值不能重复

主键约束与 唯一约束的区别分析

 字段是否可以为空        一个表可以有几个主键     ×                  1个
唯一     √                  n个
5、CHECK 检查约束 :mysql不支持,但是兼容

用于限制该字段的值必须满足指定的条件
eg:CHECK(age BETWEEN 1 AND 100)

6、FOREIGN KEY 外键约束:

说明解释:

用于限制两个表的关系,要求外键列的值必须来自主表的关联列
要求:
1.主表的关联列和从表的关联列的类型必须一致(需要引用,必须一样),意思一样,名称无要求
2.主表的关联列要求必须是主键(即需要与从表的主键关联)

三、创建表:类似创建java类

1、解释:

我们创建表,就像创建javabean时一样,创建对应的字段名 ,字段名的类型,字段的约束等等。。。。

字段约束可以加,也可以不加

注意:在添加外键约束时,放在语句的末尾处加上外键约束,防止约束无法加上,即约束加的提前了,字段还未创建,就已经添加上约束,会发生错误的,所以一般我们会把字段约束加载语句的最后添加外键约束

2、语法:

CREATE TABLE IF NOT EXISTS 表名(
字段名 字段类型 【字段约束】,
字段名 字段类型 【字段约束】,
字段名 字段类型 【字段约束】,
字段名 字段类型 【字段约束】,

外键约束语法

);

3.案例:没有添加约束案例

CREATE TABLE IF NOT EXISTS stuinfo(
stuid INT,
stuname VARCHAR(20),
stugender VARCHAR(20),
email VARCHAR(20),
borndate DATETIME
);

4、案例:添加约束的案例

DROP TABLE IF EXISTS stuinfo;
CREATE TABLE IF NOT EXISTS stuinfo(
stuid INT PRIMARY KEY AUTO_INCREMENT,#添加了主键约束,并且设置为自增长
stuname VARCHAR(20) UNIQUE NOT NULL,#添加了唯一约束和不为空约束
stugender VARCHAR(20) DEFAULT ‘男’,#添加了默认约束
email VARCHAR(20) NOT NULL,
age INT CHECK(age BETWEEN 0 AND 100),#添加了检查约束,mysql不支持
majorid INT ,
#添加外键约束最后写,否则不管用
#给majorid添加上外键约束,如下单独写
CONSTRAINT fk_stuinfo_major FOREIGN KEY (majorid) REFERENCES major(id)
);

CONSTRAINT 外键起一个别名 FOREIGN KEY (主表添加外键约束的字段名) REFERENCES 从表名(来自从表约束的字段名)

四、修改表【了解,平常不会这样干】

语法:

添加 add,修改表名 rename to,修改字段名 change,修改字段类型 modify,删除字段 drop

ALTER TABLE 表名 ADD|MODIFY|CHANGE|DROP COLUMN 字段名 字段类型 【字段约束】

#1.修改表名

ALTER TABLE stuinfo RENAME TO students;

#2.添加字段

ALTER TABLE students ADD COLUMN borndate TIMESTAMP NOT NULL;

DESC students;

#3.修改字段名

ALTER TABLE students CHANGE COLUMN borndate birthday DATETIME NULL;

#4.修改字段类型

ALTER TABLE students MODIFY COLUMN birthday TIMESTAMP ;

#5.删除字段

ALTER TABLE students DROP COLUMN birthday;

DESC students;

五、删除表

语法:

drop table if exists 表名;

案例:删除students表

DROP TABLE IF EXISTS students;

六、复制表

复制一个表结构加上数据,还有复制表,不要数据,

要数据和表结构做法

要数据就加上select语句 ,复制全部字段数据 写*号,不复制全部字段,复制字段部分数据就在select后面写指定的字段名即可,

不要数据只有表结构做法:

要是仅仅复制全部表的结构,不要数据,就不写select语句,只写一个like语句即可,但是如果仅仅复制部门字段结构还不要数据的话,就需要加上一个where语句 后面写一个不成立的条件即可,自动把所有数据过滤掉就会没有数据,只有字段名

1.仅仅复制表的结构

CREATE TABLE newtable LIKE stuinfo;

2.赋值表的结构+数据

CREATE TABLE newTable3 SELECT * FROM girls.beauty;

3.案例:复制employees表中的last_name,department_id,salary字段到新表 emp表,

CREATE TABLE emp SELECT last_name,department_id,salary FROM myemployees.employees;

4.案例:复制employees表中的last_name,department_id,salary字段到新表 emp表,但不复制数据

DROP TABLE IF EXISTS emp;
CREATE TABLE IF NOT EXISTS emp
SELECT last_name,department_id,salary
FROM myemployees.employees
WHERE 1=2;#写入一个不成立的条件就会不赋值数据了

DDL语言(DataDefinelanguage 数据库定义语言)相关推荐

  1. 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库(一)

    1.DDL(Data Definition Language:数据库定义语言)概览 DDL(Data Definition Language:数据库定义语言) 2.DDL对数据库的操作 1)方法概览 ...

  2. DDL数据库定义语言

    DDL数据库定义语言 说到数据库,我们就会想到SQL(结构化查询语言),目前我们学到的数据库有SQL Service数据库和MySQL数据库,这里主要讲解的是MySQL数据库,使用的是Navicat ...

  3. 数据库1:数据库、DDL数据库定义语言、DML操作数据库语言、DQL条件查询语句

    数据库 SQL(Structure Query Language)语言是数据库的核心语言. SQL语言共分为四大类:数据查询语言DQL,数据操做语言DML,数据定义语言DDL,数据控制语言DCL. 1 ...

  4. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制

    /*进阶 11 DDL 数据库定义语言库和表的管理一:库的管理:创建/修改/删除二:表的管理:创建/修改/删除创建: CREATE DATABASE [IF NOT EXISTS] 库名;修改: al ...

  5. 4、DDL语句(数据定义语言)

    文章目录 一.DDL语句介绍 二.create 创建 三.alter 修改 四.drop 删除 五.truncate 清空 一.DDL语句介绍 DDL语句:数据定义语言-Data Definition ...

  6. DML语言(数据库操作语言)和DQL语言(数据库查询语言)

    DML语言(数据库操作语言)和DQL语言(数据库查询语言) 1.DML语言(Data Manipulation Language) 1.1.添加语句(insert) INSERT INTO `teac ...

  7. 数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)

    Mysql是一个非常典型的C/S结构的应用模型,所以Mysql连接必须依赖于一个客户端或者驱动. 在linux中支持两种连接模式:TCP/IP模式和socket SQL语句的四部分: DDL:数据定义 ...

  8. 数据库定义语言(DDL)详解

    数据库定义预压(DDL 语言)是重要的语言之一.包含三个关键字:CREATE,DROP,ALTER. 数据库语言都遵循巴科斯范式,其语言规范如下所示:L利用CREATE关键字可以实现定义:定义数据库, ...

  9. DDL(数据库定义语言)

    DDL(Data Definition Language) 数据定义语言 1. 基本操作 查看所有数据库名称:[语法:show databases;] 切换数据库:[语法:use test;],切换到 ...

最新文章

  1. 记一次简单的 JVM 调优经历
  2. 02.Web大前端时代之:HTML5+CSS3入门系列~H5结构元素
  3. 买卖股票的最佳时机II
  4. 如果硬盘不显示可以这么处理
  5. 【bzoj2500】幸福的道路 树形dp+倍增RMQ+二分
  6. 你们也只剩下点赞的交情
  7. 构建SpringCloud项目基础框架
  8. NHibernate学习--初识NHibernate
  9. sql azure 语法_如何将SQL数据迁移到Azure Cosmos DB
  10. JavaWeb——springMVC、mybatis与spring的整合
  11. Revit中视图隐藏部分轴号字符及控制视图类别【隐藏/显示】
  12. html怎么链接scc,htmlscc基础知识
  13. 循环不变式、数学归纳法、归纳推理和演绎推理学习总结
  14. php手册之Callback 回调类型
  15. 微信分享本地视频到朋友圈,收藏或者对话
  16. FPGA数字信号处理之乘法器
  17. EasyRTMP Android安卓手机直播推流摄像头偏暗的问题解决
  18. uni-app实现验证码登录-云之讯
  19. 从精英云到普惠云,青云QingCloud的“性格”变了
  20. 中国开发游戏元宇宙的公司 元宇宙游戏开发团队

热门文章

  1. Nginx执行php,显示“No input file specified. ”的处理方法
  2. python连接sap接口_python中调用api接口
  3. phpcms的二次开发的代码模板(一)
  4. CRC16 Modbus计算原理与代码实现
  5. 成考计算机是在笔试吗,成人高考考试怎么答题方式(成人高考是笔试还是电脑答题)...
  6. 机器学习算法(十二):聚类(2)层次聚类 Hierarchical Clustering
  7. 基于Android的校园交友app
  8. 微信小程序日历(下拉、收起、点击、小圆点、月份切换)
  9. 在父div中使文字垂直居上、垂直居下
  10. Hamibot自动化脚本京东茅台脚本蚂蚁森林能量脚本