-
二维表中的记录和字段,关系中的元组和属性--转载
2014-03-06 20:19:15关系数据库里,关系模式(模型)是型,关系是值,关系模式...关系实质上是一个二维表,表中每一条记录(行)在关系模式中被称为元组,每个字段(列)被称为属性。 前者是描述结构,后者是具体数据。严格上不能划等号。关系数据库里,关系模式(模型)是型,关系是值,关系模式是对关系的描述。关系实质上是一个二维表,表中每一条记录(行)在关系模式中被称为元组,每个字段(列)被称为属性。
前者是描述结构,后者是具体数据。严格上不能划等号。 -
SQL 语句快速入门(数据库和表的创建,表的操作,表中数据查询,分组、聚合、排序 DOS命令窗口实现)
2019-08-12 16:09:44一、前言入门 基本概念的介绍 关系型数据库 关系型数据库,是指采用了关系模型来组织...关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。(百度百科) ...一、前言入门
基本概念的介绍
- 关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。(百度百科)
- 什么是SQL?
Structured Query Language:结构化查询语言
其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。
(本文不涉及数据库完整性的学习,只是SQL语句的快速入门单表操作)-
SQL分类
-
DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
- DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
- DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select, where 等
- DCL(Data Control Language)数据控制语言
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等
mysql的基本数据类型
atetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss timestamp:时间错类型 包含年月日时分秒
yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值启动数据库
成功后是这样的
二、具体内容
DDL:操作数据库、表
操作数据库
1 创建数据库
create database if not exists 数据库名称; create database if not exists db4 character set gbk
2 删除数据库
3 查询数据库的定义:show create database 数据库名称;
4 Update:修改数据库的字符集
alter database 数据库名称 character set 字符集名称;
使用数据库:use 数据库名称;
- 注意:初学者千万要注意,在dos窗口使用SQL的时候,千万先选择一个数据库,才能使用SQL语句进行表的操作,就像你要出去吃饭就要找饭馆一样,进到一个门店里你才能开始点菜一样。
表的基本操作
1 创建
create table 表名( 列名1 数据类型1, 列名2 数据类型2, .... 列名n 数据类型n );
2 查询test数据库中所有的表名称:show tables;
查询表结构:desc 表名;
查询表定义的SQL语句:
show create table student;
3 修改表
修改表名:alter table 表名 rename to 新的表名;
修改表的字符集:alter table 表名 character set 字符集名称;
添加一列:alter table 表名 add 列名 数据类型;
修改列名称 类型alter table 表名 change 列名 新列别 新数据类型; alter table 表名 modify 列名 新数据类型;
- 我们可以使用change更加的强大,我们可以将表名和数据类型一次性的改掉,而modify只可以修改数据类型。
4 删除列:alter table 表名 drop 列名;
drop table if exists 表名 ; 自己可以自行体验。
DML:增删改表中数据
1 添加数据:语法:
insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
- 注意
- 列名和值要一一对应。
- 如果表名后,不定义列名,则默认给所有列添加值
insert into 表名 values(值1,值2,…值n); - 除了数字类型,其他类型需要使用引号(单双都可以)引起来
我们可以看到成功的插入了 6条数据,男女搭配了一下,都是不老男神和70年的中国美女。2 删除数据:
delete from 表名 [where 条件]
TRUNCATE语句和DELETE语句的区别-
delete语句,是DML语句,truncate语句通常被认为是DDL语句。
-
delete语句,后面可以跟where子句,通常指定where子句中的条件表达式,只删除满足条件的部分记录,而truncate语句,只能用于删除表中的所有记录。
-
truncate语句,删除表中的数据后,向表中添加记录时,自动增加字段的默认初始值重新从1开始,而使用delete语句,删除表中所有记录后,向表中添加记录时,自动增加字段的值,为删除时该字段的最大值加1,也就是在原来的基础上递增。
-
delete语句,每删除一条记录,都会在日志中记录,而使用truncate语句,不会在日志中记录删除的内容,因此,truncate语句的执行效率比delete语句高。
3 修改数据:
带条件修改数据:update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件];
要求:将 id 号为 6 的张曼玉 名字 改为 温碧霞,再看看表中的数据
DQL:查询表中的记录
select 字段列表 from 表名;
1 语法: 语法语句的基本排列,根据查询的具体要求 会稍有改动
- select 字段列表
- from 表名列表
- where 条件列表
- group by 分组字段
- having分组之后的条件
- order by 排序
- limit 分页限定
2 基础查询
我们重新创建一个表(表的完整性我们不做过多定义)
CREATE TABLE `student` ( `id` int(11) , `NAME` varchar(20) DEFAULT NULL, `chinese` float DEFAULT NULL, `english` float DEFAULT NULL, `math` float DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf
表中的数据如下
多个字段的查询select 字段名1,字段名2... from 表名;
- 如果查询所有字段,则可以使用 * 来替代字段列表
去除重复: distinct (用了之前的stu表)
计算列:一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
这里使用了起别名 – as 别名ifnull(表达式1,表达式2):null参与的运算,计算结果都为null 表达式1:哪个字段需要判断是否为null
如果该字段为null后的替换值。
修改各科成绩的别名:
3 条件查询
查询数学成绩大于 70 的人的所有信息
查询数学和英语成绩大于 70 的人的所有信息
查询数学成绩等于90,92,,77的信息
查询 语文成绩在 80 - 90 之间的人的信息
LIKE:模糊查询占位符:
_:单个任意字符
%:多个任意字符查询姓张的有哪些? like
查询姓名是3个字的人 , 这样布拉德皮特就除外了
DQL:查询语句
表中的数据
1 排序查询order by 排序字段1 排序方式1 , 排序字段2 排序方式2...
排序方式:
- ASC:升序,默认的。
- DESC:降序。
注意:如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。
- 要求:对每个人总分排序输出,然后再按升序的顺序输出
SQL语句
select *,(chinese + english + math) 总分 from student order by 总分;
- 要求:对张的学生成绩排序输出
SQL语句
select *,(chinese + english + math) 总分 from student where name like '张%'order by 总分 asc;
2 聚合函数:将一列数据作为一个整体,进行纵向的计算聚合函数 含义 count(*) 计算个数(非空) max 计算最大值 min 计算最小值 sum 计算和 avg 计算平均值 - 要求:统计总分大于250的人数有多少?
SQL语句
SELECT COUNT(id) FROM student WHERE (chinese + english + math) > 250;
- 要求:求一个班级总分平均分
SQL语句
SELECT SUM( chinese + english + math ) 各科成绩总和, FORMAT(AVG(chinese + english + math), 2) 总分平均分 FROM student;
3 分组查询
我们添加了一个年龄,性别的字段,方便我们分组查询。
where 和 having 的区别?-
where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
-
where 后不可以跟聚合函数,having可以进行聚合函数的判断。
- 要求:按性别分组,求男神和女神数学的平均分
- 要求:查询男女各多少人(查询步骤如下)
- 查询所有数据,按性别分组
- 统计每组的人数
- 要求:查询年龄大于55岁的人,按性别分组,统计每组的人数
- 要求:查询年龄大于55岁的人,按性别分组,统计每组的人数,每组人数大于 2 的 显示
sql语句
select gender,count(id) from student where age > 55 group by gender having count(id) > 2;
4 limit分页
limit(offset,length) 跟数组下标 差不多
offset :起始行数,从 0 开始计数,如果省略,默认就是 0
length :返回的行数
分页使用场景:比如我们登录京东,淘宝,返回的商品信息可能有几万条,不是一次全部显示出来。是一页显示固定的条数。总结
-
关系模型中设计表时的约束条件
2019-02-26 15:27:19简而言之,关系就是一张二维表,由行和列组成。关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系 设计表时,可对表中的一个字段或多个字段的组合设置约束条件,不满足约束条件的数据将被数据库管理...关系模型中设计表时的约束条件 一、介绍
-
关系模型是目前最重要的也是应用最广泛的数据模型。简而言之,关系就是一张二维表,由行和列组成。关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系
-
设计表时,可对表中的一个字段或多个字段的组合设置约束条件,不满足约束条件的数据将被数据库管理系统拒绝录入。约束分为表级约束和字段级约束,表级约束是对表中几个字段的约束,字段级约束是对表中一个字段的约束
二、常见的约束形式
-
1.主键约束
- 主键用来保证表中每条记录的唯一性,因此在设计数据库表时,建议为所有的数据库表都定义一个主键,用于保证数据库表中记录的唯一性。一张表只允许设置一个主键,这个主键可以是一个字段,也可以是一个字段组合。单个字段作为主键时,使用字段级约束;用字段组合作为主键时,则使用表级约束。在录入数据的过程中,必须在所有的主键字段中输入数据,即任何主键字段的值不允许为 null 。如果不在主键字段中输入数据,或输入的数据在表中已经存在,则这条记录将被拒绝。可以在创建表时创建主键,也可以对表中已有的主键进行修改或者增加新的主键
-
2.外键约束
-
外键约束主要用于定义表于表之间的某种关系,对于表 A 来说,外键字段的取值是 null,或者是来自于表 B 的主键字段的取值,表 A 与表 B 必须存放在同一关系型数据库中。外键字段所在的表称为子表,主键字段在的所在的表称为父表,父表与子表之间通过外键字段建立起了外键约束关系,即表 A 称为表 B 的子表,表 B 称为表 A 的父表。子表与父表之间的外键约束关系如下:
-
如果子表的记录 “参照” 了父表的某条记录,则父表中该记录的删除(delete)或修改(update)操作可能以失败告终
-
如果试图直接插入(insert)或者修改(update)子表的 “外键值”,子表中的 “外键值” 必须是父表中的 “主键值” 或者 null,否则插入(insert)或者修改(update)操作失败
-
-
-
3.非空约束
- 如果在一个字段中允许不输入数据,可以将该字段定义为 null,如果在一个字段中必须输入数据,则应当该字段定义为 not null。如果设置某个字段的非空约束,直接在该字段的数据类型后面加上 not null 关键字即可
-
4.唯一性约束
- 如果一个字段值不允许重复,则应当对该字段添加唯一性约束(unique)。与主键约束不同,一张表中可以存在多个唯一性约束。如果设置某个字段的唯一性约束,直接在该字段的数据类型后面加上 unique 关键字即可
-
5.默认约束
- 默认值字段用于指定一个字段的默认值,当尚未在该字段中输入数据时,该字段中将自动填入这个默认值。如果设置某个字段的默认值约束,直接在该字段的数据类型后面加上 “default 默认值” 即可
-
6.检查约束
- 检查(check)约束用于检查字段的输入值是否满足指定的条件,在表中输入或者修改记录时,如果不符合检查约束指定的条件,则数据不能写入该字段
-
7.自增约束
- 自增(AUTO_INCREMENT)约束是 MySQL 唯一扩展的完整性约束,当向数据库表中插入新记录时,字段上的值会自动生成唯一的 ID。在具体设置自增约束时,一个数据库表中只能有一个字段使用该约束,该字段数据类型必须是整型类型。由于设置自增约束后的字段会生成唯一的 ID,所以该字段也经常会被设置为主键
-
8.删除约束
- 在 MySQL 数据库中,一个字段的所有约束都可以用 alter table 命令进行删除
-
-
Mysql表的操作
2017-06-24 23:57:26二维表是同类实体的各种属性的集合 每个实体对应于表中的一行 在关系中称为元祖 相当于通常的一条记录 ; 表中的列表示属性 称为Field 相当于通常记录中的一个数据项 也叫列 字段 -----------------------------...我们说Mysql是一种关系型数据库 关系数据库最重要的概念就是表 表具有固定的列数和任意的行数 在数学上被称为关系,
二维表是同类实体的各种属性的集合 每个实体对应于表中的一行 在关系中称为元祖 相当于通常的一条记录 ;
表中的列表示属性 称为Field 相当于通常记录中的一个数据项 也叫列 字段
----------------------------------创建表
create table 表名 (
字段 类型 primary key auto_increment,
字段 类型 约束,
字段 类型 约束);
-----------------------------------查看表结构
desc 表名
-----------------------------------查看表的详细定义
show create table 表名
-----------------------------------删除表的
drop table 表名
-----------------------------------表的约束
非空约束 NOT NULL ;
列默认值 DEFAULT ;
唯一约束 UNIQUE;
主键约束 primary key ;
自增约束 AUTO _INCREMENT
外键约束 FOREIGE KEY
----------------------------------------添加一列
alter table 表名 add 字段名字 类型 约束;
----------------------------------------修改列的长度
alter table 表名 modify 要修改的字段名 类型 约束;
-----------------------------------------修改列的列名
alter table 表名 change 原来列名 新列名 类型 约束
----------------------------------------删除列的列名
alter table 表名 drop 列名
----------------------------------------修改表名
rename table 表名 to 新表名 -
python学习之 --CSV二维数据 + ini 配置文件处理
2019-05-06 09:21:43CSV 是一个被行分隔符、列分隔符划分成行和列的文本文件。 CSV 不指定字符编码。 行分隔符为\r\n,最后一行可以没有换行符 列分隔符常为逗号或者制表符。 每一行称为一条记录record 字段可以使用双引号括起来,... -
关系型数据库与NoSQL数据库简述
2017-09-21 16:10:44关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名元组:可以理解为二维表中的一行,在数据库中经常被称为记录属性:可以理解为二维表中的一列,在数据库中经常被称为字段域:属性的取值范围... -
《数据库学习打卡》第7天(第二章 关系数据库)
2020-04-28 16:01:42属性:可以理解为二维表中的一列,在数据库中经常被称为字段 域:属性的取值范围,也就是数据库中某一列的取值限制 关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成 其中属性(列)... -
(CED)列指针与行指针的联系与区别
2020-03-05 21:30:59一、列指针(竖为列) 1、列指针相关定义 列指针:被称为是指针变量指向二维数组的某个元素 一般使用时会有如下...而上述代码定义的指针p,一般按照下表方式指向二维数组a中的元素: 语法 样例 ... -
MySQL数据库教程第五章表的基本操作x_access数据库教程
2020-08-27 13:48:43每个表都是由若干行和列组成的在数据库中表中的行被称为记录表中的列被称为是这些记录的字段 记录也被称为一行数据是表里的一行在关系型数据库的表里一行数据是指一条完整的记录 字段是表里的一列用于保存每条记录... -
关系型数据库和非关系型数据库的区别
2020-03-22 22:08:28一、关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是...属性:可以理解为二维表中的一列,在数据库中经常被称为字段 域:属性... -
关系型数据库
2019-07-20 18:54:44关系型数据库:采用关系模型来组织数据的数据库。 关系模型指的是二维表格模型...属性:二维表中的一列,在数据库中被称为字段。 域:属性的取值范围,也就是数据库中某一列的取值范围。 关键字:一组可以唯一标识元... -
Linux从入门到精通——数据库
2018-08-22 15:24:00MYSQL是一个关系型数据库。 关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的...属性:可以理解为二维表中的一列,在数据库中经常被称为字段。域:属性的取值范围,也就是数据库中某一列... -
mysql 非关系型数据库_简述关系型数据库和非关系型数据库
2021-01-19 16:58:30关系模型中常用的概念:关系:一张二维表,每个关系都具有一个关系名,也就是表名元组:二维表中的一行,在数据库中被称为记录属性:二维表中的一列,在数据库中被称为字段域:属性的取值范围,也就是数据库中某一列... -
简述关系型数据库和非关系型数据库
2020-08-21 11:05:48当前数据库分为关系型数据库和...属性:二维表中的一列,在数据库中被称为字段 域:属性的取值范围,也就是数据库中某一列的取值限制 关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成 关 -
关于数据库的一些问题,同时给出了一些答案
2015-12-27 17:58:11实现关系数据库中各数据元素间联系的是?...二维表中的一行叫做一个元组,是记录类型的实例,代表了某个具体的实体或具体实体间的特定关系。 阿里云ECS怎么搭建ASP+Access网站? 回答:主机是一个 -
关系型数据库与非关系型数据库
2020-06-06 23:14:02属性:二维表中的一列,在数据库中被称为字段 域:属性的取值范围,也就是数据库中某一列的取值限制 关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成 关系模式:指对关系的描述。其... -
简述关系型数据库与非关系型数据库
2019-06-05 10:39:00当前数据库分为关系型数据库和非关系型数据库 关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库。 关系模型指的就是二维表格模型,而一个...属性:二维表中的一列,在数据库中被称为字段 域:... -
重学数据库-----mysql
2020-08-23 15:37:07属性:可以理解为二维表中的一列,在数据库中经常被称为字段。 域:属性的取值范围,也就是数据库中某一列的取值限制。 关键字:一组可以唯一标识元组的属性。数据库中常称为主键,由一个或多个列组成。 关系模式:... -
关系型数据库和非关系型数据库
2019-08-02 15:49:35当前数据库分为关系型数据库和非关系型数据库 关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库。 关系模型指的就是二维表格...属性:二维表中的一列,在数据库中被称为字段 域:属性的取值范围... -
关系型数据库 VS.非关系型数据库
2019-10-21 17:30:34当前数据库分为关系型数据库和非关系型数据库。 一、关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库。 关系模型指的就是二维表格...属性:二维表中的一列,在数据库中被称为字段 域:属性的取值... -
数据库
2019-08-19 22:05:58当前数据库分为关系型数据库和非关系型数据库 1.关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库。 关系模型指的就是二维表格...属性:二维表中的一列,在数据库中被称为字段 域:属性的取值范围,... -
后端面试知识点总结 数据库 mysql
2020-10-09 14:19:38属性:二维表中的一列,在数据库中称为字段 域:属性的取值范围,也就是数据库中某一列的取值限制 关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或者多个列组成 关系模型:指对关系的描述。格式... -
关系型与非关系型数据介绍
2015-08-24 22:31:38(1)关系型数据库: 关系型数据库,是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其...属性:可以理解为二维表中的一列,在数据库中经常被称为字
-
浅谈用户引导设计
-
叠瓦式硬盘和垂直式硬盘怎么区分?
-
斜光轴数字强度相关计量的像模糊容限
-
精益开发治理的最佳实践,第2部分:过程和度量
-
前端学习第七天
-
CSRFTester:一款CSRF漏洞的安全测试工具
-
Galera 高可用 MySQL 集群(PXC v5.6 + Ngin
-
网页元素轻设计–尊重用户产品体验
-
响应式编程入门与实战(Reactor、WebFlux、R2DBC)
-
MySQL 性能优化(思路拓展及实操)
-
zapata:自动执行的自动测试编写器-源码
-
maindianzishizh.c
-
能扫描任意函数图像的光扫描器
-
浅谈数据仓库建设中的数据建模方法
-
python各种数据类型之间的相互转换
-
谈谈对于企业级系统架构的理解
-
php底层运行机制与原理
-
平面型四光纤耦合系统的研究
-
解决SQLServer管理器无法连接远程数据库的问题
-
一起看看 Activity启动模式