sql 只要一个字段相同则只显示一条数据_数据库

f2982135670e58febf3a7415416e47ca.png

数据库:管理数据的仓库,其本质是一种数据结构。

一、数据

数据:即信息,包括视觉信息、听觉信息等等。当前数据库主要存储的是视觉信息(数字、文字等等)

二、数据库的组成

数据库是由一张张数据表组成的。

数据表由字段(属性)与记录(元组)组成。

a70ad836106748bde3b94c308606fb9d.png
图1 数据表

字段包括主键、联合主键、外键、其他字段

主键:能够唯一标识记录的字段。

只要能够唯一标识记录的字段都可以作主键,所以主键存在一个选择问题。我们要选择不可更改的能够唯一标识记录的字段作主键,因为主键是用来定位记录的,不可更改,否则会出现找不到的情况。一般选择XX编号作为主键,不用身份证、手机号等等作主键,它们可能也会更改 在关系数据库中,记录不可以相同,指的是两条记录主键字段值不可以相同

联合主键:用多个字段(属性)唯一标识记录,这多个字段就是联合主键。

不推荐使用,因为分析起来比较麻烦

外键:(在其他数据表中是主键)且(在本数据表中不是主键)的字段。

其他字段:除了主键(单)、联合主键、外键以外的字段。

字段的数据类型包括数值型、字符型、时间型。

  • (数值型)数据类型
整数型,常用Int(x),表示范围是【-2^31,(2^31)-1

-->Int

4个字节,实际范围是【-2^31,(2^31)-1】

-->Smallint

2个字节,实际范围是【-2^15,(2^15)-1】

-->Tinyint

1个字节,实际范围是【-2^7,(2^7)-1】

浮点数型,常用Double

-->Float

单精度浮点数,4个字节

-->Double

双精度浮点数,8个字节

  • (字符型)数据类型

-->Char(n),表示范围同Varchar(n)

-->Varchar(n),表示范围【n位字符,n位字符】,负号“-”也算一位字符

n表示“表示范围”为n个字符,必须赋值。 Char(n)相较于Varchar(n)更占空间,如果用Char(5)与Varchar(5)分别存abc,Char(5)会用空格占剩余的两位,而Varchar(5)不会占用。 推荐使用Varchar(n)
  • (时间型)数据类型

-->Date

存放数据格式为“YYYY-MM-DD”(年月日)

-->DateTime

存放数据格式为“YYYY-MM-DD HH-MM-SS”(年月日时分秒)

字段的常见约束包括“非空约束”、“唯一约束”、“自增约束”、“主键约束”、“外键约束”

-->非空约束(NOT NULL)

该字段值不能为空

-->唯一约束(UNIQUE)

该字段值不能重复

-->自增约束(AUTO_INCREMENT)

该字段值默认从1开始,增长单位为1,随着记录增加开始增加。

-->主键约束(PRIMARY KEY)

该字段值是记录的主键

-->外键约束(FOREIGN KEY)

该字段值是记录的外键

(两个)数据表之间的关系类型有“一对一关系(1:1)”、“一对多关系(1:N)”、“多对多关系(N:N)”。

-->一对一关系(1:1)

独生子女家庭中,孩子表与母亲表。一个孩子只能有一个母亲,一个母亲也只有一个孩子,所以独生子女家庭中孩子与母亲之间的关系“有”是1:1关系。

-->一对多关系(1:N)

孩子表和母亲表,一个孩子只能有一个母亲,一个母亲可以有多个孩子,所以孩子与母亲之间的关系“有”是1:N关系。

-->多对多关系(N:N)

学生表与教师表,一个学生可以被多个老师教过,一个老师也可以教过多个学生,所以学生与教师之间的关系“教学”是N:N关系。

三、数据库的应用

数据库应用需要选择一个数据库管理系统,并学习一些SQL语句

数据库管理系统:管理数据库的应用软件。有MySQL、SQLServer、ORACLE等,这里我选择MySQL。

SQL:结构化查询语句,是一种使用数据库的语句。

MySQL官网下载:

https://dev.mysql.com/downloads/installer/​dev.mysql.com
MySQL安装包链接,懒得去官网下的同学自取
链接: https:// pan.baidu.com/s/1PCJjnl BJAafEuZ473E-wNQ
提取码:anl3

如果不会安装MySQL,可以参考如下文章

猴子:超级详细的mysql数据库安装指南​zhuanlan.zhihu.com
9b0656d9482efc11e1a152c2e2c3dabe.png
接下来,我们学习下数据库、数据表的基本SQL语法

->数据库的基本操作

创建数据库|CREATE DATABASE 数据库名称;

例如:CREATE DATABASE ff;

5e5de2d19f438ebbb0e8af504c2d9c73.png

使用数据库|USE 数据库名称;

例如:USE ff;

f65e406fbe0a7b63ef877ac47363ea33.png

显示所有数据库(名称)|SHOW DATABASES;

例如:SHOW DATABASES;

a184746ebbe43f924ab575fa19c72ef6.png

显示已创建数据库信息|SHOW CREATE DATABASE 数据库名称;

例如 SHOW CREATE DATABASE ff;

e345d7b0a3df32c77c3e3e1d7bd9dfff.png

删除数据库|DROP DATABASE 数据库名称;

例如 DROP DATABASE gjp;

41df2126eb38d879fc749c6bd5155c25.png

创建数据表|CREATE TABLE 数据表名(字段1名 字段1数据类型 字段1约束,字段2名 字段2数据类型 字段2约束,...,字段n名 字段n数据类型 字段n约束);

对数据表进行操作前,要先使用数据库
即USE DATABASE 数据库名;
CREATE TABLE people_infor(id int(10) PRIMARY KEY,name varchar(5) NOT NULL,telephone int(13) NOT NULL);

f408d69132f6e49281abdf3bd8546b60.png

显示数据表信息(详细结构)|SHOW CREATE TABLE 表名;

例如 SHOW CREATE TABLE people;

045204c15954ae8e7059cec8f5330157.png

删除数据表|DROP TABLE 表名;

例如:DROP TABLE people;

54736bf3954ff402f30372954642449d.png

在数据表中新增一个字段|ALTER TABLE 表名 ADD COLUMN 字段名 字段数据类型 字段约束;

例如:ALTER TABLE Demo ADD COLUMN

3371603fd41aa66535cabeb9da2831f8.png

在数据表中删除一个字段|ALTER TABLE 表名 DROP COLUMN 字段名;

例如:ALTER TABLE people DROP COLUMN father_name;

a67ad31e880cd123c8f7a3eb6c4b3e6a.png

在数据表中修改一个字段名|ALTER TABLE 数据表名 MODIFY 原字段名 新字段名 新字段数据类型;

例如:ALTER TABLE people CHANGE mother_name father_name Varchar(5);

b93a00a13ffb1fd34ec019dedb95fa16.png

在数据表中修改一个字段的数据类型与约束|ALTER TABLE 数据表名 MODIFY 字段名 新字段数据类型 新字段约束;

例如:ALTER TABLE people MODIFY mother_name Varchar(8) NOT NULL;

6887e969ff45d251f1ac5f31672ee45b.png

更改数据表表名|ALTER TABLE 原表名 RENAME 新表名;

例如ALTER TABLE people RENAME people1;(把下面用到的数据表名people改成people1)

8c4fb96820536575e20907e7c736e4e3.png

新增一条记录|INSERT INTO 表名 VALUES(字段1值,字段2值,...,字段n值);

1913d174ed636105a3aaab59a1271a82.png

删除数据|DELETE FROM 表名 WHERE 条件;

例如:DELETE FROM people WHERE father_name='张六';

12942bb1ee1c4fd3f1412b6c0b1ee975.png

修改数据|UPDATE 数据表名 SET 字段名=新字段值 WHERE 条件;

例如:UPDATE people SET father_name='李三' WHERE name='李四'

d9fc1508740aaebea4a6459f6b1410d0.png

查询数据|SELECT 字段名1,字段名2,...,字段名n FROM 数据表名 WHERE 条件;

SELECT father_name FORM people WHERE name='张五';

e30b4e92c11fd90ec1c79ade4746786c.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值