DDL语言(DataDefinelanguage 数据库定义语言)
文章目录
- 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 数据库定义语言)相关推荐
- 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库(一)
1.DDL(Data Definition Language:数据库定义语言)概览 DDL(Data Definition Language:数据库定义语言) 2.DDL对数据库的操作 1)方法概览 ...
- DDL数据库定义语言
DDL数据库定义语言 说到数据库,我们就会想到SQL(结构化查询语言),目前我们学到的数据库有SQL Service数据库和MySQL数据库,这里主要讲解的是MySQL数据库,使用的是Navicat ...
- 数据库1:数据库、DDL数据库定义语言、DML操作数据库语言、DQL条件查询语句
数据库 SQL(Structure Query Language)语言是数据库的核心语言. SQL语言共分为四大类:数据查询语言DQL,数据操做语言DML,数据定义语言DDL,数据控制语言DCL. 1 ...
- MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
/*进阶 11 DDL 数据库定义语言库和表的管理一:库的管理:创建/修改/删除二:表的管理:创建/修改/删除创建: CREATE DATABASE [IF NOT EXISTS] 库名;修改: al ...
- 4、DDL语句(数据定义语言)
文章目录 一.DDL语句介绍 二.create 创建 三.alter 修改 四.drop 删除 五.truncate 清空 一.DDL语句介绍 DDL语句:数据定义语言-Data Definition ...
- DML语言(数据库操作语言)和DQL语言(数据库查询语言)
DML语言(数据库操作语言)和DQL语言(数据库查询语言) 1.DML语言(Data Manipulation Language) 1.1.添加语句(insert) INSERT INTO `teac ...
- 数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)
Mysql是一个非常典型的C/S结构的应用模型,所以Mysql连接必须依赖于一个客户端或者驱动. 在linux中支持两种连接模式:TCP/IP模式和socket SQL语句的四部分: DDL:数据定义 ...
- 数据库定义语言(DDL)详解
数据库定义预压(DDL 语言)是重要的语言之一.包含三个关键字:CREATE,DROP,ALTER. 数据库语言都遵循巴科斯范式,其语言规范如下所示:L利用CREATE关键字可以实现定义:定义数据库, ...
- DDL(数据库定义语言)
DDL(Data Definition Language) 数据定义语言 1. 基本操作 查看所有数据库名称:[语法:show databases;] 切换数据库:[语法:use test;],切换到 ...
最新文章
- 记一次简单的 JVM 调优经历
- 02.Web大前端时代之:HTML5+CSS3入门系列~H5结构元素
- 买卖股票的最佳时机II
- 如果硬盘不显示可以这么处理
- 【bzoj2500】幸福的道路 树形dp+倍增RMQ+二分
- 你们也只剩下点赞的交情
- 构建SpringCloud项目基础框架
- NHibernate学习--初识NHibernate
- sql azure 语法_如何将SQL数据迁移到Azure Cosmos DB
- JavaWeb——springMVC、mybatis与spring的整合
- Revit中视图隐藏部分轴号字符及控制视图类别【隐藏/显示】
- html怎么链接scc,htmlscc基础知识
- 循环不变式、数学归纳法、归纳推理和演绎推理学习总结
- php手册之Callback 回调类型
- 微信分享本地视频到朋友圈,收藏或者对话
- FPGA数字信号处理之乘法器
- EasyRTMP Android安卓手机直播推流摄像头偏暗的问题解决
- uni-app实现验证码登录-云之讯
- 从精英云到普惠云,青云QingCloud的“性格”变了
- 中国开发游戏元宇宙的公司 元宇宙游戏开发团队
热门文章
- Nginx执行php,显示“No input file specified. ”的处理方法
- python连接sap接口_python中调用api接口
- phpcms的二次开发的代码模板(一)
- CRC16 Modbus计算原理与代码实现
- 成考计算机是在笔试吗,成人高考考试怎么答题方式(成人高考是笔试还是电脑答题)...
- 机器学习算法(十二):聚类(2)层次聚类 Hierarchical Clustering
- 基于Android的校园交友app
- 微信小程序日历(下拉、收起、点击、小圆点、月份切换)
- 在父div中使文字垂直居上、垂直居下
- Hamibot自动化脚本京东茅台脚本蚂蚁森林能量脚本