MySQL数据库语言一、DDL

article/2025/8/27 19:13:32

😘作者简介:正在努力的99年打工人。
👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。
🙏创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。

目录

前言

什么是数据库?

DDL语句

创建库

创建表

类型

测试

 向student表中插入数据

约束

测试

主键

 外键

唯一约束 UNIQUE

 DEFAULT设置默认值

 无符号正数UNSIGNED

 ZEROFILL零填充

实战

创建表

创建学生信息表

 创建学生成绩表

 插入数据

 利用主外键联系更新主表学生信息

前言

数据库语言分类:DDL语句、DML语句、DQL语句、DCL语句。

DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE  DROP ALTER。

DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE

DQL语句 数据库查询语言: 查询数据SELECT

DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

什么是数据库?

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

一个数据库有若干个表,这些表记录着各种信息。

数据表的各列表示字段,属性。

数据表的各行记录着各种数据,各种信息


 

DDL语句

创建库

打开之前安装的MySQL环境登录到MySQL中进行操作。

语法:

CREATE   DATABASE   库名;        //创建库

SHOW    DATABASES;                //查看所有库;

创建school数据库,通过show databases;进行查看所有数据库这里有默认的一些库,不要随意去动这些。

information_schema: 虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等

performance_schema: 主要存储数据库服务器的性能参数

mysql: 授权库,主要存储系统用户的权限信息

sys: 主要存储数据库服务器的性能参数

创建表

语法:CREATE   TABLE  表名(字段1  类型   约束,字段2  类型  约束,.....)ENGINE=引擎;

字段后面约束可写可不写,但是字段后面必须要跟字段的数据类型。

ENGINE设置引擎,默认是INNODB,所以可以不用写。

类型

数据类型:

        整型:int整数

        浮点型:float

日期类型:

        年:YEAR

        日期:DATE

        时间:TIME

        日期和时间:DATETIME

字符串类型:

        字符:CHAR和VARCHAR

        枚举:ENUM

        多选:SET

测试

创建表(不加约束)

use   库名         //进入库,如果不进入库,创建表之前要加上库名.表名创建。

select   database();        //查看当前库

语法:CREATE   TABLE   表名(字段1  数据类型,字段2   数据类型。。。);       //创建表

不进入库创建:CREATE   TABLE   库名.表名(字段1  数据类型,字段2   数据类型。。。); 

desc   表名        //查看表结构

 向student表中插入数据

插入语句是DML语句:INSERT

语法:INSERT   INTO  表名  VALUES(数据1,数据2。。。);

 注意:这里id位置插入数据如果不是整数会报错,sxe位置插入的如果不是b或这个g也会报错。

约束

主键PRIMARY KEY :标识该字段为该表的主键,可以唯一的标识记录,不可以为空。

外键FOREIGN KEY :标识该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联

UNIQUE KEY :标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY

AUTO_INCREMENT:标识该字段的值自动增长(整数类型,而且为主键)

DEFAULT:为该字段设置默认值

NOT NULL   :标识该字段不能为空

UNSIGNED:无符号,正数

ZEROFILL :使用0填充,例如0000001

测试

语法:CREATE   TABLE   表名(字段1  数据类型  约束,字段2   数据类型   约束。。。);

主键

创建p1表设置id为主键,主键不能为空,一般设置为自增。 

使用desc查看表结构可以看到id的key列和extra有了内容 。

插入正确数据

 插入错误数据

插入重复的id数会报错。因为设置了id自增所以在不输入id的情况下,会默认在前一个数据的基础上加1所以不会报错,如果不给自增约束,这里不填写id的数据会报错。

 外键

测试外键需要两个表,一个主表一个副表,外键要绑定主键的,所以主表要加主键,外键是假在副表上的。这里主表用刚刚的p1表因为已经创建了主键,接下来创建副表来增加外键。

语法:create  table  表名(字段1   数据类型    约束,foreign key(字段)   references  主表名(主键字段) on  需求  cascade);

需求可以是update  或者 delete等操作可以同时加多个需求

 向p2插入数据

向p2插入两条数据。

注意:这里插入的数据pid部分必须要和主表的id数据匹配负责将报错,因为要保证副表的外键部分要和主表的主键部分有联系。

 测试主外键联系

对主表内容进行修改。

发现主表id为1的数据改为3之后对应的副表pid为1的数据也同时改为了3。 

唯一约束 UNIQUE

UNIQUE唯一约束,和主键的区别在于UNIQUE可以为空。

语法:create  table  表名(字段    数据类型   UNIQUE);

 id部分插入非空数据

没有报错。

 id部分不插入内容

id位置不插入数据,仍然不会报错。

 DEFAULT设置默认值

一般在一些字段,当用户不输入任何值时,需要给一个默认值,比如在学校选课时,当你不做任何操作默认选课选项为否。

语法:create  table  表名(字段   数据类型   default(默认值));

 在choose出不插入数据测试

只在obj处插入数据不在choose插入数据,在查询表内容的时候choose有数据‘no’。

 无符号正数UNSIGNED

该约束,要求输入的字段只能是正数。

注意这个约束要紧跟数据类型之后。

这里创建了两个id字段,一个是正常int  另一个是加了unsigned约束的id。

 测试插入正确数据

int数据类型是支持负数的。

测试在id_unsigned录入负数

 可以发现都是int数据类型,但是id_unsigned录入负数就会报错,这就是unsigned约束的作用。

 ZEROFILL零填充

使用0填充,例如0000001

这里顺便介绍int类型的使用,在定义数据类型为int或者float类型的时候可以使用int(10)这个10表示该数据的长度,但不会限制,这个在0填充部分可以体现。

 发现在约束0填充的同时会默认加上正数约束。

插入数据

在插入数据长度不到定义的数据长度时会自动在前面填充0。

这个约束往往会用在学生的学号以及人员编码上,为了美观。

实战

使用已学的数据类型以及约束来创建完善的学生表。

创建表

学生信息表:

        要求:学生表存储学生学号、姓名、性别、年龄、籍贯。

学生成绩表:

        要求:创建姓名外键,存储学生学号、姓名、学科、成绩。

创建学生信息表

mysql> create table studentmsg(id int(3) zerofill not null auto_increment,-> name varchar(20) not null,-> sex enum('b','g') not null,-> age int,-> area varchar(100),-> primary key(id,name));

 创建学生成绩表

因为主表使用的是复合主键所以这边也要用复合主键做外键。

create table score( -> id int(3) zerofill not null  auto_increment, -> name varchar(20) not null, -> obj varchar(50) not null, -> score float(5,2), -> primary key(id), -> foreign key(id,name) references stuudentmsg(id,name) on update cascade on delete cascade);

 插入数据

mysql> insert into studentmsg values(1,'tom','b',16,'江苏'),(2,'lucy','g',18,'浙江');
mysql> insert into score values(1,'tom','Math',89),(2,'lucy','English',93);

 利用主外键联系更新主表学生信息

需求:需要将001号学生姓名改为jack。

mysql> update studentmsg set name='jack' where id=1;

改完之后score表的该学生信息也发生了变化。 


http://chatgpt.dhexx.cn/article/uggctpHw.shtml

相关文章

数据库系统之sql语言

查询语言(query language)是用户用来从数据库中请求获取信息的语言。这些语言通常比标准的程序设计语言层次更高。查询语言可以分为过程化的和非过程化的。在过程化语言(procedural language)中,用户指导系统对数据库执行一系列操作以计算出所需结果。在非过程化语言…

一文读懂数据库语言

数据库系统提供数据定义语言(Data-Definition Language,DDL)来定义数据库模式,并提供数据操纵语言(Data-Manipulation Language,DML)来表达数据库的查询和更新。而实际上,数据定义和…

数据库+SQL语言

文章目录 数据库相关概念MySQL数据模型关系型数据库 SQL通用语法 SQL语句全解DDLDMLDQL基础查询条件查询排序查询分组查询分页查询 约束外键约束 数据库设计软件研发步骤数据库设计理念和步骤表关系多表查询事务 数据库相关概念 数据库:存储和管理数据的仓库&#x…

又一门国产数据库语言诞生了,比SQL还好用

一、数据库语言的目标 1.1 数据库是做什么的 数据库这个软件,名字中有个“库”字,会让人觉得它主要是为了存储的。其实不然,数据库实现的重要功能有两条:计算、事务!也就是我们常说的OLAP和OLTP,数据库的…

数据库标准数据语言SQL——总结

数据库标准数据语言SQL SQL(Structured Query Language),结构化查询语言 1. 数据查询——select 2. 数据操纵——create,drop,alter 3. 数据定义——insert,update,delete 4. 数据控制——grant,revoke 1数据定义 1. 模式的定义删除 2. 基本表的定义、删除与修改 列级完整…

【数据库】SQL语言

目录 一、SQL语言概述 1、特点 2、SQL功能 3、SQL支持数据库系统三级模式 二、数据定义语言(DDL) 1、模式 2、基本表 3、视图 4、索引 三、数据查询语言(DQL) 1、单表查询 2、连接查询 3、嵌套查询 4、集合查询 5、…

数据库语言-SQL

数据库语言-SQL 一、概述二、利用SQL建立数据库1、创建Database2、创建Table3、追加元组 三、利用SQL进行简单查询1、单表查询2、检索条件之去重复记录3、检索结果之排序4、模糊查询 四、利用SQL语言进行多表联合查询1、θ-连接之等值连接2、表更名与表别名3、θ-连…

数据库SQL语言

SQL语言基础 大家好,我是大黄。这次我来简单带你们了解一下数据库技术中必不可少的一项——SQL语言。 SQL,英文是Structured Query Language,直面翻译就是结构化疑问语言。所以说明这个语言是有一定的结构的,所以基础阶段不会太困…

数据库语言

DDL语言 其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE)为表加入索引等。 mysql是一个关系型数据库,库里面包含若干个表,而每一张表都是由行和列组成。 1.关于数据库操作的命…

数据库基础语言

目录 数据库与表的概念 如何操作数据库 数据库连接方式 SQL分类 DDL数据定义语言 DML 数据操作语言 数据库常用数据类型 约束条件 主键约束(PRIMARY KEY) 具有主键约束的字段同时可以使用自增来让DBMS自行对其值进行维护 非空约束(NOT NULL) 唯一性约束(UNIQUE) D…

MySQL-SQL语言

文章目录 SQL语法要求:1、DDL1.1、数据库操作(1) 查询当前数据库(2) 查询当前数据库(3) 创建数据库(4) 创建一个itheima数据库,并且指定字符集(5) 删除数据库(6) 切换数据库 1.2、表操作1.2.1、表的基本操作(1) 查询当前数据库所有表(2) 查看指定表结构(…

只知道SQL数据库?又一国产数据库语言诞生了

一、为什么学习数据库? 学习数据库,你肯定需要先了解它,这样你才知道你为什么要学习它,数据库除了SQL还有一些别的数据库,了解它们的作用,可以在不同的场景选择最符合的一个数据库。 1.1 什么是数据库&am…

比SQL还好用,又一门国产数据库语言诞生了

目录 一、数据库语言的目标1、要说清这个目标,先要理解数据库是做什么的。2、什么样的计算体系才算好呢? 二、SQL为什么不行1、先看写着简单的问题2、为什么 SQL 不行呢?3、再看跑不快的原因4、我们再做个类比: 三、SPL为什么能行…

MySQL数据库——SQL语言

文章目录 MySQL数据库——SQL语言前言一、数据定义语言(DDL)二、数据操纵语言(DML)三、事务控制语言(TCL)四、数据查询语言(DQL)1.select/for 基本查询语句2.给列起别名(…

写着简单跑得又快的数据库语言 SPL

数据库语言的目标 要说清这个目标,先要理解数据库是做什么的。 数据库这个软件,名字中有个“库”字,会让人觉得它主要是为了存储的。其实不然,数据库实现的重要功能有两条:计算、事务!也就是我们常说的 OLA…

大数据和云计算有什么关系?

前言 本文隶属于专栏《大数据从0到1》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见《大数据从0到1》 解答 云计算关注资源的分配和利用,侧重…

【云原生|云计算系列】云计算基础概念

欢迎来到云原生专题的云计算系列第一篇博客,我们将探索云计算的基础知识,以帮助您深入了解这个迅速发展的领域。在前一篇博客中,我们介绍了云原生的概念和重要性,强调了它作为云计算的核心理念和实践的关键角色。本篇博客将进一步…

云计算之概念——IaaS、SaaS、PaaS、Daas

云计算通俗来说就是输入/输出和计算不在一个主机上。计算要用到计算设备,计算设备一般是指CPU、内存和硬盘,输入/输出设备一般是指键盘、鼠标、显示器、耳机、音响、话筒等外设。而我们的个人计算机是使用主板将这些东西连接到一起来协调工作。 一个软件…

盘点云计算的概念,分类和特点

云计算主要分为 4 种类型:私有云、公共云、混合云和多云。同时,云计算服务主要有 3 种:基础架构即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。 怎么选择云类型或云…

云计算(详细解释)

云计算 云计算实现了通过网络提供可伸缩的,廉价的分布式计算能力,用户只需要在具备网络接入条件的地方,就可以随时随地获得所需的各种IT资源.云计算代表了以虚拟化技术为核心,以低成本为目标的,动态可拓展的网络应用基础设施.云计算包括3种典型的服务模式:laas(基础设施即服务…