mysql 23day DDL常用约束,数据类型

目录

  • 数据库的四种语言
  • 常用约束(DDL)
    • 创建格式
    • PRIMARY KEY:主键约束
    • FOREIGN KEY:外键约束
      • 主键外键 联合测试
      • 开始测试
    • NOT NULL:非空约束
    • UNIQUE:唯一约束
    • DEFAULT:默认值约束
    • zerofill 零填充
    • auto_increment 自增加
  • 数据类型
    • 数值型(int)
    • 字符串类型(varchar)
    • 时间和日期类型(date)
    • 浮点数类型(decimal)
    • 枚举类型(ENUM)
    • 集合类型(SET)
  • 面试知识点
    • 导入数据库
    • 抹除数据
    • alter 加入一个字段 注意事项

数据库的四种语言

DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DDL(data definition language):
DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE
DML(data manipulation language):
DQL语句 数据库查询语言: 查询数据SELECT
DQL(Data Query Language )数据查询语言 SELECT
DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
DCL(Data Control Language):

常用约束(DDL)

表的定义
表格约束

创建格式

字段名   字段类型 (长度),字段约束组成(可选)
create table {库名}.{表名}({字段名} {字段类型、长度} {字段约束组成(可选)}{第二个字段},第三个字段)
实例
create table idol(`name` varchar(20) NOT NULL);

PRIMARY KEY:主键约束

主见的约束 特征
(不能重复 且不能为空 适用于用户昵称)
[使用方法 只能出现一次 第二次 如果想使用在两行就需要在最后单独声明]

create table student6(
id int primary key auto_increment not null,
name varchar(50) not null,
sex enum('male','female') not null default 'male',
age int not null default 18
);desc student6;insert into student6 values (1,'alice','female',22);select * from student6;insert into student6(name,sex,age) values('king','male',1002);select * from student6;
primary key  //只能使用一次#第二种写法create table student7(
id int auto_increment not null,
name varchar(50) not null,
sex enum('male','female') not null default 'male',
age int not null default 18
primary key(id)
);#符合组件  写法  //作用 两列 id不一样  name一样也是可以的
create table student8(
id int auto_increment not null,
name varchar(50) not null,
sex enum('male','female') not null default 'male',
age int not null default 18,
primary key(id,name)
);desc student8;
insert into student8 (name,sex,age) values ('ww','male','18');select * from student8;#使用默认 属性 
create table student9(
id int auto_increment not null,
name varchar(50) not null,
sex enum('male','female') default 'male',
age int default 18,
primary key(id,name)
);desc student9;insert into student9(name) values('wakaa');select * from student9;

FOREIGN KEY:外键约束

#可以为空但是不能重复
create table department(
dept_id int,
dept_name varchar(30) unique,
comment varchar(50)
);desc department;insert into department values(1,'king','sdfasdf');
insert into department values(2,'kk','sdfasdf');
select * from department;insert into department values(1,NULL,'sdfasdf');
select * from department;#第二种写法,是可以写在下边的 和 PRIMARY一样的写法
create table department22(
dept_id int,
dept_name varchar(30) ,
comment varchar(50),
unique (dept_name)
);

主键外键 联合测试

#作用 关联 主键删除 外键也可以删除
#使用方法 外键指向主键 即可生效#第一个表格设置create table employees(
name varchar(50) not null,
mail varchar(20),
primary key(name)
)engine=innodb;engine=innodb;//指定搜索引擎 如果一个加了 另外一个没有加 会导致实验失败
#第二个表格设置create table payroll(
id int not null auto_increment,
name varchar(50) not null,
payroll float(10,2) not null,
primary key(id),
foreign key(name) references employees(name) on update cascade on delete cascade
)engine=innodb;#查看两个表格类型 desc
desc employees;
desc payroll;

在这里插入图片描述
在这里插入图片描述

开始测试

#给两个表格中写入内容insert into employees values('k','k@king.com');
insert into payroll values(1,'k','80000.23');#查看两个表格select * from employees;
select * from payroll;#更新 更改  第一个表格update employees set name='king' where name='k';#查看两个表格select * from employees;
select * from payroll;#删除第一个表格delete from employees where name='king';#查看两个表格select * from employees;
select * from payroll;DROP TABLE payroll;
DROP TABLE employees;
show tables;>>>如果主表格没有同名数据 附表格 则会插入数据失败
>>>如果直接删除 则会删除失败
>>>如果进行修改则会报错

NOT NULL:非空约束

表明这个字段不能为空必须填入内容
如果再插入数据的时候没有内容,则会报错

create table idol(`name` varchar(20) NOT NULL);

UNIQUE:唯一约束

表示此列,每个内容都不一样,
一般作为索引,可以增加数据库的查询速度

创建表
create table idol(`id` int UNIQUE,
`name` varchar(20) NOT NULL
);
插入数据 添加约束
insert into t2 VALUES (1,'wang'),(2,'li');
插入同样id 测试唯一约束
insert into t2 values (1,'fei')最后报错

在这里插入图片描述

DEFAULT:默认值约束

制作表格
create table t3(
id int,
myname varchar(20),
relation varchar(40) DEFAULT"陌生人"
);插入数据
insert into t3(id,myname) VALUES (1,'xiaomign');查看表格
select * from t3;

在这里插入图片描述

zerofill 零填充

零填充,如果设置三位 并且使用零填充约束
则会在前边 自动填充零

# 创建表格
create table ta(id int(3) zerofill);
# 插入数据
insert into ta values(1);
# 查看表的结构
desc ta;
#查看表内容
select * from ta;

在这里插入图片描述

auto_increment 自增加

--进入某库中
use datebase;
--生成表格
create table ttt1(
id int primary key auto_increment,
name varchar(40)
);
--插入数据
insert into ttt1(name) VALUES ('liubang'),('xiaohe'),('liuche');
--查看表格
select * from ttt1;
--插入数据

在这里插入图片描述

数据类型

数值型(int)

常用数据类型:
tinyint(有符号型最大值127),
int(有符号型最大值2147483647)

create table test1( 
tinyint_test tinyint,
int_test int
);

字符串类型(varchar)

常用的
char
varchar

#创建表格
CREATE TABLE king.string ( 
id int ,
str1 char,
str2 varchar(20));
#查看表格类型
desc king.string;
# 插入数据 由于char 如果没设置 则只能插入一个数据 所以这里 插入一个a
insert into king.string VALUES (1,"a","aa");
#打印表格
select * from king.string;# 修改 char 可以插入四个数据
ALTER TABLE king.string MODIFY str1 char(40);
#插入两个末尾带空格的字符 看看数据库怎么保存
insert into king.string VALUES (1,"aaa  ","aaa  ");#查看两个字符长度
#查看第一个
SELECT LENGTH(subquery_alias.str1) AS result_length 
FROM (SELECT str1 FROM king.string WHERE id=1) AS subquery_alias;
#查看第二个
SELECT LENGTH(subquery_alias.str2) AS result_length 
FROM (SELECT str2 FROM king.string WHERE id=1) AS subquery_alias;DELETE from king.string  where str1='a'

在这里插入图片描述
在这里插入图片描述

时间和日期类型(date)

year、date、time、datetime、timestamp

CREATE TABLE king.time1(
t1 date, t2 time ,t3 datetime, t4 year ,t5 timestamp
);
desc king.time1;insert into king.time1(t1,t2,t3,t4) VALUES (now(),now(),now(),now());select * from king.time1;

在这里插入图片描述

浮点数类型(decimal)

#创建表格 以小数储存
CREATE TABLE king.num1(num1 decimal(20,10));
#插入数据
insert into king.num1 VALUES (12.3123123);
insert into king.num1 VALUES (151.313232323123);
#打印表格内容
select * from king.num1;

在这里插入图片描述

枚举类型(ENUM)

只能选择一个

CREATE TABLE  king.my1 (
`id` int PRIMARY KEY auto_increment COMMENT "主键 自增",
`name` VARCHAR(20) NOT NULL,
`sex`	ENUM("男","女") NOT NULL DEFAULT "男",
`hobby` SET("nusic","game","eat","mv") NOT NULL
)ENGINE="INNODB"
# 查看表格结构
desc king.my1;
# 插入数据
insert into king.my1(name,sex,hobby) values ('huahua',"女","nusic,game");
# 查看表格
select * from king.my1;

在这里插入图片描述

集合类型(SET)

可以选择多个

CREATE TABLE  king.my1 (
`id` int PRIMARY KEY auto_increment COMMENT "主键 自增",
`name` VARCHAR(20) NOT NULL,
`sex`	ENUM("男","女") NOT NULL DEFAULT "男",
`hobby` SET("nusic","game","eat","mv") NOT NULL
)ENGINE="INNODB"
# 查看表格结构
desc king.my1;
# 插入数据
insert into king.my1(name,sex,hobby) values ('huahua',"女","nusic,game");
# 查看表格
select * from king.my1;

在这里插入图片描述


面试知识点

导入数据库

mysql -p'miam' <date.sql##

抹除数据

#如果使用delete (浪费时间,浪费服务器资源)
delete from {表名};
#抹除数据 从磁盘上抹除
truncate {表名};

alter 加入一个字段 注意事项

不要再高峰期执行 执行原理是 把原有的表复制一份,把新的字段 插入 然后把 原来的字段删除了。

alter table {表名} ADD {新字段名} {约束条件} {位置};
ALTER TABLE employees ADD job VARCHAR(20) NOT NULL AFTER name;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自制数据库空洞率清理工具-C版-01-EasyClean-V1.0(支持南大通用数据库Gbase8a)

目录 一、环境信息 二、简述 三、支持功能 四、空洞率 五、工具流程图 六、安装包下载地址 七、参数介绍 1、命令模板 2、命令样例 3、参数表格 八、安装步骤 1、配置环境变量 2、生效环境变量 3、检验动态链接是否正常 九、运行效果 一、环境信息 名称值CPUInt…

Windows电脑向ipad和iOS系统共享文件夹

Windows电脑向ipad和iOS系统共享文件夹 这个方案不需要下载任何软件&#xff0c;但是要求 iOS 和 Windows 在同一个局域网内。再大的文件都可以在 iOS13 自带的的“文件App”里实时显示&#xff0c;可以直接打开。这个解决方案需要你 Windows 电脑上登陆了微软账号&#xff0c…

原生JavaScript实现 元素全屏与退出全屏效果

之前写过 前端screenfull实现界面全屏展示功能 突然发现自己犯傻了 其实元素js中就有全屏与取消全屏的方式 html代码如下 <!DOCTYPE html> <html> <head><title>全屏实验</title><style></style> </head> <body><d…

数据结构考试测试编程题

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

flutter开发实战-第一帧布局完成回调实现

flutter开发实战-第一帧布局完成回调实现 在开发中&#xff0c;我们有时候需要在第一帧布局完成后调用一些相关的方法。这里记录一下是实现过程。 Flutter中有多种不同的Binding&#xff0c;每种Binding都负责不同的功能。下面是Flutter中常见的Binding&#xff1a; 这里简单…

nginx userid到底做了啥?

我们公司在用nginx的userid模块作为简单的用户请求追踪使用。这个模块其实并不能真正记录用户的请求状态&#xff0c;只能作为一个辅助使用。但是在一些场景下会有一些异常。下面我们简单介绍一下这个模块到底做了什么。 userid 模块简介 官网说明文档 ngx_http_userid_modul…

【三维生成与重建】ZeroRF:Zero Pretraining的快速稀疏视图360°重建

系列文章目录 题目&#xff1a;ZeroRF: Fast Sparse View 360◦ Reconstruction with Zero Pretraining 任务&#xff1a;稀疏重建&#xff1b;拓展&#xff1a;Image to 3D、文本到3D 作者&#xff1a;Ruoxi Shi* Xinyue Wei* Cheng Wang Hao Su &#xff0c;来自UC San Dieg…

为实体服务器配置Ubuntu

简介 我们在使用虚拟机时&#xff0c;直接在网上找到镜像然后下载到本地&#xff0c;在VMware创建实例时将该iso文件作为镜像源然后进行基础配置就可以轻松安装配置好Linux虚拟机。 在为实体服务器安装Linux系统&#xff0c;同样的&#xff0c;我们也需要镜像源&#xff08;即…

Jmeter多种定时器实现方法解析

1、固定定时器&#xff08;Constant Timer&#xff09; 用法(场景)&#xff1a;更真实的模拟用户场景&#xff0c;需要设置等待时间&#xff0c;或是等待上一个请求的时间才执行&#xff0c;给 sampler 之间的思考时间 备注&#xff1a;如果需要每个步骤均延迟&#xff0c;则…

Python实现AR协方差结构线性回归模型(GLSAR算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 GLSAR是具有AR协方差结构的广义最小二乘法线性回归模型。 本项目通过GLSAR回归算法来构建AR协方差结构…

搭建 ElasticSearch 集群环境

安装基础环境 我们用虚拟机创建出3台机器&#xff0c;修改主机名为s1&#xff0c;s2和s3 # 打开如下文件&#xff0c;修改主机名 vim /etc/hostname # 重启机器 reboot查看centos版本为7.9 [roots1 ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (AltArch)下载…

【C语言】记录一次自己犯下的低级错误 o(╯□╰)o(局部数组与指针数组的传参、赋值)

在这里分享一下本人犯下的低级错误&#xff0c;希望大家别掉同样的坑 o(╥﹏╥)o 文章目录 事情原委错误分析及解救办法错误一&#xff1a; 使用局部数组arr并将其作为返回值解决方法&#xff1a;使用动态内存分配来创建数组&#xff0c;并在函数结束前手动释放内存。 错误二&…

在nodejs中使用讯飞星火大模型3.0的demo

需求&#xff1a; 在nodejs引入讯飞星火大模型的api接口, 思路 看了一下官方文档 api连接为一个WebSocket Secure&#xff08;WSS&#xff09;连接&#xff0c;具体思路如下&#xff1a; 引入 crypto 和 ws 模块&#xff0c;分别用于生成加密签名和创建 WebSocket 连接。&am…

力扣每日一题day37[113.路径总和ii]

给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…

Maven高级篇

Maven依赖管理原则; 可选依赖&#xff1a;隐藏当前项目中的指定的包&#xff0c;如此&#xff0c;别的包引用当前包时&#xff0c;当前包中的指定包就被隐藏了&#xff0c;在别的包中无法看到隐藏的包 排除依赖&#xff1a;指定排除引用包中所包含的依赖&#xff0c;防止与当…

基于Docker环境下的Jenkins搭建及使用

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

2023年12月21日开发正式版v1.2.3更新·本次更新30多个细节优化·完善丰富后台功能·加入演员关联机制

2023年12月21日开发正式版v1.2.3更新本次更新30多个细节优化完善丰富后台功能加入演员关联机制 产品简介 安卓苹果PCH5四端&#xff0c;蜻蜓z暗影版的衍生级版本&#xff0c;2023年优雅草蜻蜓z冬季雪花限定版&#xff0c;不仅继承了蜻蜓z的精良功能&#xff0c;还特色增加了弹…

Win系统修改Nginx配置结合内网穿透实现远程访问多个Web站点

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

找不到msvcp120dll,无法继续执行代码的解决方法大全

当你尝试启动一个应用程序或游戏&#xff0c;并且遭遇到一个错误信息&#xff0c;告诉你“找不到msvcp120dll,无法继续执行代码”或者收到类似的提示&#xff0c;这说明你的操作系统中缺失了一个关键的动态链接库文件&#xff0c;即 msvcp120.dll。这种情况其实并不罕见&#x…

一文解析子网掩码和默认网关,成为网络设置达人

随着互联网的普及&#xff0c;越来越多的人开始接触并使用电脑和网络。然而&#xff0c;对于很多初学者来说&#xff0c;网络设置中的子网掩码和默认网关是两个相对陌生的概念。今天&#xff0c;我们就来深入解析这两个概念&#xff0c;让你轻松掌握网络设置技巧&#xff01; …