数据定义和操作

数据定义语言DDL(Data Ddefinition Language) 数据定义语言DDL(Data Ddefinition Language) 数据定义语言的关键词: 创建:create 、修改:alter、删除:drop 常用的数据库对象:表,视图,索引,同义词,序列 1 表 1.2 创建表 语法create table <表名> ( <列名> <数据类型> [列级完整性约束条件], <列名> <数据... 阅读详情
一、数据定义语言和操作语言
1. 分析需求设计数据库表
根据“优乐网”系统需求:
 此系统满足以下需求:
系统支持生成商品的入库和出库。入库之后的商品可以在平台显示
所有用户都可以浏览系统的商品信息,只有注册用户才能订购团购商品和服务
系统支持订单数据自动生成
为方便用户检索所需的团购商品和服务信息,系统支持按商品和服务的类型、商家以及
所在地区进行分类
设计数据库表:
2. 数据定义语言
(1)概念:数据定义语言(Data Definition Language,DDL),主要是用在定义或改变
表的结构、数据类型、表之间的连接和约束等初始化工作上,比如 create、alter、drop
等。
(2)常用DDL语句:
数据库创建和维护的DDL语句:
 create database database_name 创建数据库
 show databases 查看数据库
 drop database database_name 删除数据库
 rename database old_database_name to new_database_name 更改数
据库名
 数据库表创建:
 create table table_name(
字段名 1, 数据类型【列级别约束条件】【默认值】,
字段名 2, 数据类型【列级别约束条件】【默认值】,
...
【列级别约束条件】
)
 演示例子:
CREATE TABLE `t_user` (
 `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`NAME` varchar(50) NOT NULL COMMENT '用户名',
`PASSWORD` varchar(10) DEFAULT NULL COMMENT '用户密码',
PRIMARY KEY (`ID`)
 ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=gbk
1 数据库表结构修改:
2 //表结构语法:
3 alter table 表名 修改子句
4 修改子句类型:
5 新增字段子句:
6 add column_name data_type [not null] [default default_value]
7 变更字段名子句:
8 change column_name new_column_name data_type [not null] [default default_
value]
9 更新字段类型子句:
10 modify column_name new_data_type [not null] [default default_value]
11 删除字段:
12 drop column column_name
13 删除约束:
14 drop unique constraint_name;//删除唯一约束
15 drop constraint 约束名;//删除约束
16 drop primary key;//删除主键
修改表结构例子:
1 具体要求如下:
2 新增字段供应商地址 address,类型为 varchar(50)。
3 将字段 mobile 更名为 tel,字段类型维持不变,仍为 varchar(20)。
4 将字段 pName 的类型修改为 varchar(50),原类型为 varchar(20)。
5 删除字段 contact。
6 DDL语句:
7 alter table provider add address varchar(50), change mobile tel varchar(2
0),
8 modify pName varchar(50), drop column contact;
9 例子:
10 alter table t_user add address varchar(50), change NAME USER_NAME varcha
r(20),
11 modify PASSWORD varchar(8)
3. 数据操作语言
(1)概念:数据操作语言DML,实现对数据库中数据的操作,以 insert、update、
delete 3 种指令为核心,分别代表插入、更新与删除。
(2)插入语句
1 语法结构:如果同时插入多行则values后跟多个(值列表),以都好相隔
2 insert [into] table_name[( 字段列表 )] values( 值列表 )
3 例子:
4 insert into t_user(USER_NAME,PASSWORD,address)
5 values('张三','11111111','xxx学院');(3)更新语句:使用“update”SQL 语句来操作,该语句可以对表中的一行、多行甚至
所有记录进行修改
1 语法结构:
2 update table_name set
3 字段名 1= 值 1, 字段名 2= 值 2, … , 字段名 n= 值 n;
4 [where 条件表达式 ]
5 例子:
6 update t_user set USER_NAME=concat('欧阳',USER_NAME);
(4)删除语句:
1 语法结构:
2 delete from table_name [where 条件表达式 ]
3 注意:当删除有主从关系的表记录时,为避免发生删除时异常,一定要事先设置从表
4 外键约束的“删除时”状态为 null,或者为“cascade”。在通常情况下,都是设置从表
5 外键约束的“删除时”状态为 null,而不是“cascade”,因为这样容易误删除从表数据。
6
7 例子:
8 DELETE from t_user where USER_NAME='欧阳张三'
二、数据查询
1. select语句基本结构
(1)概念:select 语句可以使数据库服务器根据客户的要求查询所需要的信息,并按规定
的格式返回给客户
(2)select语法结构:
1 select <column1, column2, column3 … > from <table_name>
2 [where < 条件表达式 >]
3 [group by column1, column2, column3 … | having < 条件表达式 >]
4 [order by < column1, column2, column3 … > [asc 或 desc]]
(3)字段取别名,表取别名,按需查字段
1 select shopName as 商家名 , shopAddress as 商家地址 from product shop
2
3 例子:
4 SELECT * from t_user;
5 select user_name as '姓名' ,password as '密码' from t_user as userinfo
2. 查询结果排序
order by 字段名 排序方式:
可以对查询结果按照“字段 1,字段 2…”的次序进行升序或降序显示。
关键字 asc 表示升序(默认为升序,故升序时可省略 asc),desc 表示降序。
多列排序的规则为:依照排序列从左至右的次序依次降低例子:
1 SELECT * from t_user u order by id desc,phone asc;
3. 过滤重复字段
1 distinct:用于过滤重复的字段信息。
2 select distinct director from movie
4. 限定指定记录
limit子句:MySQL 提供的 limit 子句可以被用于强制select 语句返回指定的记录数。

limit [offset,] rows

参数 offset 和 rows 必须为整数,offset 可以省略。
offset 指定第一个返回记录行的偏移量。注意:初始记录行的
偏移量是 0,而不是 1。
rows 指定返回记录行的最大数目
1 select movieName 电影名 ,filmLength 片长(分钟) from movie
2 order by filmLength
3 limit 0,5
5. 模糊查询
like 运算符:进行模式匹配查询
通配符:
n%:包含零个或多个字符的任意字符串。
n_(下划线):任意单个字符。
n[]:指定范围(如 [a-d])或集合([abcdef])中的任意单个 字符。
n[^]:不属于指定范围(如 [^a-d])或集合([^abcdef])中
的任意单个字符
1 例子:
2 select movieName 电影名 ,filmLength 片长(分钟) from movie
3 where actors like ‘%黄%’
三、聚合函数和分组统计
1. 聚合函数
(1)概念:聚合函数是 SQL 基本函数,它对一组值执行计算,并返回单个值。
(2)聚合函数:
除了 count(*) 函数以外,聚合函数都会忽略空值。
 例子:
1 获取电影的数量、最长片长、最短片长和平均片长
2 select count(*) 数量 ,max(filmLength)(分钟) 最长片长 ,
3  min(filmLength) 最短片长(分钟),avg(filmLength) 平均片长(分钟)
4  from movie
5 select count(director) 导演信息不为空的电影数量 from movie
2. group by分组统计
(1)概念:group by 子句可以将数据划分到不同的组中,实现对记录的分组统计
(2)语法结构:
1 group by 字段列表 [having 条件表达式 ]
2 例子:
3 select typeID 类型 ID,count(*) 数量 ,avg(filmLength) 平均片长(分钟),
4 max(ticketPrice) 最高票价(元) from movie
5 where ticketPrice<=100 ‐‐分组前过滤
6 group by typeId
7 having avg(filmLength)>100 ‐‐对分组结果过滤
8 order by avg(filmLength)
四、连接查询
1. 内连接查询
(1)概念:内连接也称为连接,它还可以被称为完全匹配连接。
内连接使用比较运算
符比较每个表共有的列的值。(what)
(2)语法结构:
1 select fieldlist from table1
2 [inner] join table2
3 on table1.column1=table2.column2 ‐‐column1 和 column2 通常为主键和外键
2. 多表连接查询
(1)概念:
如果在 from 子句中,直接列出所有要连接的表,然后在 where 子句中指定连
接条件,此为简单多表查询。
简单多表连接查询是内连接查询的简单表现形式,它与内连接查询的功能相同
(2)语法结构:
1 select fieldlist from table1, table2 where table1.column1=table2.column2
3. 外连接查询
(1)概念
外连接可以是左外连接、右外连接或全连接.(what) 在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际应 用中,如果希望不满足连接条件的记录也在查询结果中出现,这时就需要使用外连接 查询。(why)
(2)左外连接(left join)
结果集包括 left join 子句中指定的左表的所有行,而不仅仅是连接列所匹配的 行。
如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择 列表列均为空值。
 例子:
1 ‐‐需求
2 采用左外连接方式显示所有电影的相关信息,要求输出电影名、导演名、票价和类型
3 ‐‐sql语句
4 select movieName 电影名 ,director 导演名 ,ticketPrice 票价(元),typeName
类型
5 from movie m
6 left join movie_type mt
7 on m.typeId=mt.id
(3)右外连接(right join)
右外连接是左外连接的反向连接,它返回右表的所有行。 如果右表的某行在左表中没有匹配行,则在相关联的结果集行中,表的所有选择 列表列均为空值。
 例子:
1 ‐‐需求:
2 采用右外连接方式显示所有电影类型的相关信息,要求输出电影名、导演名、票价和类型。
3 ‐‐sql语句:
4 select movieName 电影名 ,director 导演名 ,ticketPrice 票价(元),typeName
类型
5from movie m right join movie_type mt on m.typeId=mt.id
(4)全连接(full join)
全连接返回左表和右表中的所有行。
当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。MySQL 目前在语法上暂不支持全连接,但可以通过将左外连接和右外连接使用
union 进行连接来实现全连接。
数据库实验三 SQL数据完整性 SQL数据定义和操作欢迎阅读本教程一、数据定义二、数据更新三、数据查询 欢迎阅读本教程 掌握关系数据库语言 SQL 的使用。 使所有的 SQL 作业都能上机通过。 实现内容如下: 数据定义:表的建立/删除/修改; 索引的建立/删除;视图的建立/删除。 数据更新:用 insert/delete/update 命令插入/删除/修改表数据。 数据查询:单表查询,多表查询, 嵌套子查询等。 视图操作... 阅读详情

相关推荐

从采集到播放:RV1106+H264全链路开发避坑指南(含FFmpeg转码技巧)

本文详细解析了基于Rockchip RV1106芯片构建H.264视频从采集到播放全链路的开发实践。内容涵盖RKMPI框架设计、VI/VENC模块配置、内存泄漏排查及FFmpeg高效转码技巧,旨在帮助嵌入式开发者规避常见陷阱,实现稳定高效的低延迟视频处理流水线。

weixin_29189377的博客 662

数据操作以及常用方法

常用的连接操作包括INNER JOIN,LEFT JOIN,RIGHT JOIN等。视图操作:用于创建视图,将查询结果封装为视图,方便后续使用。常用的视图操作包括CREATE VIEW,DROP VIEW等。聚合操作:用于对数据进行聚合计算,如求和、平均值、最大值、最小值等。常用的聚合操作包括SUM,AVG,MAX,MIN等。查询操作:用于查询符合要求的数据。常用的查询操作包括SELECT,WHERE,ORDER BY,GROUP BY等。常用的更新操作包括UPDATE,SET,WHERE等。

dxn16638400024的博客 1537

告别Overleaf!本地LaTeX环境配置:VSCode+TeXLive完全指南(Windows/Mac双平台)

本文详细介绍了如何在Windows和Mac平台上配置本地LaTeX环境,使用VSCode和TeXLive打造高效的专业写作工作流。从TeXLive安装到VSCode插件配置,再到高级技巧与性能优化,帮助用户摆脱Overleaf限制,实现更快速、更私密的学术写作体验。

3c4x5z6v7b的博客 952

【Java 进阶篇】数据定义语言(DDL)详解

表的创建:DDL允许您创建新表,指定表的列、数据类型、约束条件等。表的修改:您可以使用DDL来修改现有表的结构,例如添加新列、删除列、修改列的数据类型等。表的删除:DDL允许您删除不再需要的表,从而释放数据库资源。索引的创建和删除:索引是用于加快数据检索速度的数据结构,DDL可以用来创建和删除索引。视图的创建和删除:DDL允许您创建虚拟表,这些表是从一个或多个实际表中派生出来的。约束条件的定义:您可以使用DDL来定义表中的约束条件,如主键、外键、唯一约束等,以保持数据的完整性和一致性。模式的管理。

繁依Fanyi的博客 2186

配电网可靠性评估(一)—最小路法和非序贯蒙特卡洛模拟法的matlab实现

电力系统的可靠性研究是相关领域的热点问题。根据研究对象的不同,又可分为发电系统的可靠性,输电系统的可靠性和配电系统的可靠性。配电网在电力系统中处于最末端的位置,直接和用户相连,一旦出现故障情况,就会在用户侧表现为停电事故。因此对配电网的可靠性评估有着重大意义。......

配电网和matlab的博客 1万+

多模型机器学习生存预测分析:AUC比较、生存分层与SHAP解释

本文研究了多种机器学习模型在心力衰竭患者生存预测中的应用。通过比较逻辑回归、随机森林、XGBoost、LightGBM和梯度提升机五种模型的AUC表现,选择最优预测模型。基于最优模型的预测概率对患者进行风险分层,并使用Kaplan-Meier生存分析和log-rank检验验证分层的有效性。最后采用SHAP方法解释模型决策过程,识别关键预测因素。研究提供了从模型构建、评估到解释的完整技术流程,为临床预后预测提供了可复现的分析框架。

AI的内部世界的博客 157

数据定义语言(DDL) 和数据操纵语言(DML)

数据定义语言(DDL)数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象用于操纵表结构的数据定义语言命令有:    CREATE TABL (创建表)    ALTER TABLE(修改表)    TRUNCATE TABLE(删除表中数据)    DROP TABLE(删除表)创建表 CREATE TABL createtable 表名(字段  字段类型  [default '输入默...

苗苗 3万+

毕业设计:丹麦电力电价预测预测未来24小时的电价pytorch+lstm+历史特征和价格+时间序列 电价预测模型资源 完整代码数据可直接运行

毕业设计:丹麦电力电价预测预测未来24小时的电价pytorch+lstm+历史特征和价格+时间序列 电价预测模型资源 完整代码数据可直接运行

356

数据库实验二 SQL数据定义和操作

SQL数据定义和操作欢迎阅读本教程一、数据定义二、 欢迎阅读本教程 掌握关系数据库语言 SQL 的使用。 使所有的 SQL 作业都能上机通过。 实现内容如下: 数据定义:表的建立/删除/修改; 索引的建立/删除;视图的建立/删除。 数据更新:用 insert/delete/update 命令插入/删除/修改表数据。 数据查询:单表查询,多表查询, 嵌套子查询等。 视图操作:通过视图的数据查询...

Natalie_yao的博客 2918

国科大作业考试资料《人工智能原理与算法》2024新编-第三次作业整理

1. 你的目标是让机器人走出迷宫。机器人面朝北,开始位置在迷宫中间。你可以让机器人转向面朝东、南、西或北。你可以让机器人向前走一段距离,在撞墙之前它会停步。 (1)将问题形式化。状态空间有多大? (2)在迷宫中游走,在两条路或更多路交叉的路口可以转弯。重新形式化这个问题。现在状态空间有多大? (3)从迷宫的任一点出发,我们可以朝四个方向中的任一方向前进直到可以转弯的地方,而且我们只需要这样做。重新对这个问题进行形式化。我们需要记录机器人的方向吗? 2. 传教士和野人问题

MatsumotoChrikk 984

Oracle EBS Interface/API(49)- AP付款取消API

Oracle EBS AP付款取消API介绍和简单实例

陈显平的专栏-Oracle EBS 850

【Mysql】一篇带你了解数据定义,操作和查询语言

having的作用是过滤数据,where也是过滤数据。那么他们有什么区别呢?1.having与where的区别(1).执行时机不同。where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。(2).判断条件不同。where不能对聚合函数进行判断,而having可以。即where并不参与分组后的过滤数据。而是在分组前执行,且必须在分组前执行。 2.使用要求 (1) 如果过滤条件中使用了聚合函数,则必须使用having来

m0_73381672的博客 2770

厉害了,华为推出下一代光传送网:fgOTN

2024年10月,在全球信息技术博览会(GITEX Global 2024)上,华为正式发布了其颠覆性的创新产品——端到端细粒度光传送网(fgOTN)解决方案。这一产品组合被誉为行业内首个fgOTN,旨在重塑光传送网络的格局,满足电力运输等行业日益增长的通信需求。在过去的近三十年中,同步数字体系(SDH)技术一直是电信和工业网络的支柱,因其可靠性、稳定性和低延迟而备受青睐。然而,随着数据需求的激增,SDH的最大带宽仅为10 Gbps,逐渐显露出局限性。

网络技术联盟站 636

python之数据容器、列表的定义语法、元组的定义和操作、字符串的定义和操作、集合的定义和操作、字典的定义

元组只有一个数据,这个数据后面要添加逗号元组不可修改,但是元组里面嵌套的list可以修改不传入参数,去除首尾空格定义空的集合不支持使用{}去写,{}用来定义空的字典重复定义字典:后面的数据88把前面的覆盖了,只输出了一个88,也因为字典不允许key重复获取数据字典转字符串键值都能保留,但是转列表和元组、集合不保留值。排序的结果会变成列表对象。

m0_51133942的博客 441

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

[mysql]数据定义语言DDL和数据操作语言DCL

CREATE;ALTER;DROP;RENAME;TRUNCATE如何创建数据库.这里我们列了3种方式.关键词IF NOT EXISTS注意我们这里是要有权限,我们现在用的是ROOT用户,所以是一定可以创建的.根部用户CREATE DATABAS mytest1 CHARATER SET ‘’#这里是要设置字符集这里我们看看数据库的信息,我们可以查看字符集这里的字符集是utf8mb4,因为我们默认的字符集就是这个..

qq1021091799qq的博客 2647

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

详解数据结构中栈的定义和操作

本文为大家详解数据结构中栈的定义和操作。

华为云官方博客 1083

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

如何在 PostgreSQL 中实现自定义数据类型和操作符?

在 PostgreSQL 中,我们可以使用语句来创建自定义数据类型。自定义数据类型可以基于现有的内置数据类型,也可以是全新的复合数据类型。在上述示例中,我们创建了一个名为'SMALL''MEDIUM'和'LARGE'。除了简单的自定义类型,我们还可以创建复合自定义数据类型,将多个字段组合在一起。在这个示例中,我们创建了一个名为的复合数据类型,它包含了街道、城市、州和邮政编码四个字段。自定义操作符可以让我们为自定义数据类型或现有数据类型定义新的运算逻辑。在 PostgreSQL 中,我们可以使用。

发现生活,分享智慧,一起成长! 1813

SQL中数据定义语言和数据操作语言的详细讲解

我前面一篇博客讲解了什么是数据库中数据的定义语言和操作语言,接下来我们就详细讲解下 首先是数据的定义语言 1.CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库。 SQL CREATE DATABASE 语法 CREATE DATABASE database_name 2.CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表。 SQL...

DZMNLFH的博客 7586

HBase内容分享(二):HBase数据定义和数据操作

命令描述create创建指定模式的新表alter修改表的结构,如添加新的列族describe展示表结构的信息,包括列族的数量与属性list列出HBase中已有的表删除或更改表时,需禁用表,更改完后需要解禁表禁用所有的表判断一个表是否被禁用drop删除表truncate如果只是想删除数据而不是表结构,用truncate来禁用表、删除表并自动重建表结构。

之乎者也·的博客 1205

MySQL的DDL(数据定义)和DML(数据操作)操作语法

SQL的分类,MySQL的DDL(操作表,操作数据库)操作,DML(增删改)操作语法示例Demo。

kong7906928的博客 1386

MySQL数据库定义语言和操作语言

MySQL数据库使用SQL(Structured Query Language)作为其查询和操作语言。在MySQL中,SQL主要分为两大类:数据定义语言(DDL)和数据操作语言(DML)一、数据定义语言create具有创建数据库和数据表的功能alter具有添加字段、删除字段、修改字段类、删除外键约束、更改表储存引擎类型、更改表名、改变字段位置、更改字段的数据类型的功能drop具有删除表、删除数据库的功能insert具有进行不指定具体的字段插入数据、依次指定表的字段插入数据的作用。

Ljj04300355的博客 1743

DDL数据库定义和DML数据操作语言

数据库DDL 1.创建库的语法 CREATE DATABASE [IF NOT EXISTS] database_name [IF NOT EXISTS] --增强代码的健壮性 [COMMENT database_comment] --这个库是干嘛的 [LOCATION hdfs_path] --你当前的库存储的hdfs路径 [WITH DB

weixin_45425054的博客 1072

Hive的DDL数据定义和DML数据操作

Hive数据类型 Java数据类型 Hive数据类型 长度 byte TINYINT 1byte short SMALINT 2byte int INT 4byte long BIGINT 8byte float FLOAT 单精度浮点数 double DOUBLE 双精度浮点数 string STRING 字符 TIMESTAMP 时间类型 BI...

weixin_42898914的博客 334

【数据结构--顺序表定义和操作】

本文展示了一个用C语言实现的顺序表(SqList)数据结构,包含初始化、插入、删除、查找等基本操作。顺序表采用静态数组存储,最大长度为10。主要功能包括:在指定位置插入元素(ListInsert)、删除元素(ListDelete)、按位序查找(ListGetElem)、按值查找(ListLocateElem)以及在尾部插入(ListInsertTail)等操作。代码中严格区分位序(从1开始)和数组下标(从0开始),并进行了边界条件检查。示例程序演示了插入和删除操作的使用方式。该实现遵循一般著作权协议,仅供学

DevangLic Blog 205

Django(2) - 模型的定义和数据操作

定义模型 有一个数据表就对应有一个模型 在models.py文件中定义模型 引入:from django.db import models 模型类要继承models.Model类 示例: class Grades(models.Model): gname = models.CharField(max_length=20) gdate = models.DateTimeField() ggirlnu...

学习笔记 237

SQL的两个部分:数据操作语言和数据定义语言

转自W3school: http://www.w3school.com.cn/sql/sql_syntax.asp   SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。 SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。 查询和更新指令构成了 SQL 的 DML 部...

唐武的博客 405
上一篇: MySQL数据库应用
下一篇: MySQL数据库编程(1)
Jarvis!
博客等级 码龄6年 822粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值