sql 只要一个字段相同则只显示一条数据_数据库
数据库:管理数据的仓库,其本质是一种数据结构。
一、数据
数据:即信息,包括视觉信息、听觉信息等等。当前数据库主要存储的是视觉信息(数字、文字等等)
二、数据库的组成
数据库是由一张张数据表组成的。
数据表由字段(属性)与记录(元组)组成。
字段包括主键、联合主键、外键、其他字段
主键:能够唯一标识记录的字段。
只要能够唯一标识记录的字段都可以作主键,所以主键存在一个选择问题。我们要选择不可更改的能够唯一标识记录的字段作主键,因为主键是用来定位记录的,不可更改,否则会出现找不到的情况。一般选择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/1PCJjnlBJAafEuZ473E-wNQ
提取码:anl3
如果不会安装MySQL,可以参考如下文章
猴子:超级详细的mysql数据库安装指南zhuanlan.zhihu.com
接下来,我们学习下数据库、数据表的基本SQL语法
->数据库的基本操作
创建数据库|CREATE DATABASE 数据库名称;
例如:CREATE DATABASE ff;
使用数据库|USE 数据库名称;
例如:USE ff;
显示所有数据库(名称)|SHOW DATABASES;
例如:SHOW DATABASES;
显示已创建数据库信息|SHOW CREATE DATABASE 数据库名称;
例如 SHOW CREATE DATABASE ff;
删除数据库|DROP DATABASE 数据库名称;
例如 DROP DATABASE gjp;
创建数据表|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);
显示数据表信息(详细结构)|SHOW CREATE TABLE 表名;
例如 SHOW CREATE TABLE people;
删除数据表|DROP TABLE 表名;
例如:DROP TABLE people;
在数据表中新增一个字段|ALTER TABLE 表名 ADD COLUMN 字段名 字段数据类型 字段约束;
例如:ALTER TABLE Demo ADD COLUMN
在数据表中删除一个字段|ALTER TABLE 表名 DROP COLUMN 字段名;
例如:ALTER TABLE people DROP COLUMN father_name;
在数据表中修改一个字段名|ALTER TABLE 数据表名 MODIFY 原字段名 新字段名 新字段数据类型;
例如:ALTER TABLE people CHANGE mother_name father_name Varchar(5);
在数据表中修改一个字段的数据类型与约束|ALTER TABLE 数据表名 MODIFY 字段名 新字段数据类型 新字段约束;
例如:ALTER TABLE people MODIFY mother_name Varchar(8) NOT NULL;
更改数据表表名|ALTER TABLE 原表名 RENAME 新表名;
例如ALTER TABLE people RENAME people1;(把下面用到的数据表名people改成people1)
新增一条记录|INSERT INTO 表名 VALUES(字段1值,字段2值,...,字段n值);
删除数据|DELETE FROM 表名 WHERE 条件;
例如:DELETE FROM people WHERE father_name='张六';
修改数据|UPDATE 数据表名 SET 字段名=新字段值 WHERE 条件;
例如:UPDATE people SET father_name='李三' WHERE name='李四'
查询数据|SELECT 字段名1,字段名2,...,字段名n FROM 数据表名 WHERE 条件;
SELECT father_name FORM people WHERE name='张五';
sql 只要一个字段相同则只显示一条数据_数据库相关推荐
- JS实现数组每次只显示5条数据,首尾相连显示
JS实现数组每次只显示5条数据,首尾相连显示 今天朋友问我,如何点击一个按钮,每次只展示数组中的五条数据,如果数据有13条,默认展示数组1-5,点第一次为6-10,第二次为11-13,第三次从头再来 ...
- powerbuilder freeform只显示一条数据的问题
问题:pb中的freeform在显示数据时,明明数据库中有多条数据,可是显示在freeform中却只有一条. 在网上查了很多很多资料,怎么说的都有,但就是没一个说的是对的,真是让人无奈.网上说的最多的 ...
- php foreach 为什么在if条件下多条数据只取出一条数据_微信大牛教你深入了解数据库索引...
| 作者 刘国斌,腾讯微信事业群研发工程师,目前从事企业微信的后台研发工作,已经参与企业微信消息系统.群聊.客户联系等企业微信多个核心功能的迭代. 数据库查询是数据库的最主要功能之一.我们都希望查询 ...
- c mysql显示多条数据_用一条mysql语句插入多条数据
假如有一个数据表A: id name title addtime 如果需要插入n条数据 : $time= time(); $data = array( array( 'name'=>'name1 ...
- 关于51地图中循环根据经纬度获取地理位置只显示一条数据的问题
最近在做一个gps系统,做到一个输出地理位置的小问题上卡了两天,总觉的应该很简单 但就是不出自己想要的效果 奉上代码 目前用的定时器 虽然不是很理想 但先这样用着 以后有了好的解决方案在改 var l ...
- mysql查出倒序第一条数据_[数据库]mysql 记录根据日期字段倒序输出
[数据库]mysql 记录根据日期字段倒序输出 0 2016-07-21 11:00:17 我们知道倒序输出是很简单的 select * from table order by id desc 直接这 ...
- mysql查询第11到20条数据_数据库查询语句怎样查询一个表中的第15到第20条数据...
展开全部 用row_number来查询. 具体方法如下:62616964757a686964616fe4b893e5b19e31333337613830 以sqlserver2008R2为例. 1.创 ...
- 分页查询,但是页面只重复显示一条数据
情况:分页显示,页面只显示单条重复数据.数据库视图,查询显示正常,也无重复数据. 代码如下: 在查看EntityContext的数据就发现只有重复的数据,重复数据库第一条,发现应该不是逻辑问题. 最后 ...
- SQl语句查询重复数据 只显示其中一条
SQL查询重复数据,只显示其中一条 有重复数据主要有以下几种情况: 1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 example: select distinc ...
最新文章
- js左侧三级菜单导航代码
- 图论 ---- C. Nastya and Unexpected Guest(图上最短路dp + 01bfs)
- CentOS7 设置开机直接进入命令行界面
- 泛读:CVPR2014:Discriminative Deep Metric Learning for Face Verification in theWild
- 使用taro命令(taro convert)转h5碰到的一些问题
- mysql 定一个函数_mysql自定义函数
- ansj 自定义 停用词_构造自定义停用词列表的快速提示
- zepto返回顶部动画
- 以太坊EVM在安全性方面的考虑
- 七、集合框架,Collection、list、set、map老师说集合学好了走到哪里都不怕
- 这份好用视频拼接的软件干货分享,值得收藏
- 水晶报表CrystalReports很强大也很简单!
- List集合排序之Java8stream流排序
- html5微信公众号开发,微信开放文档
- 解决Ubuntu16.04解压cudnn文件时报错could not create a hard link file
- 咖啡的合适温度(前缀和以及加减标记)
- mysql文本类型_mysql里存大量文本的数据类型是text吗?请详细说明一下
- 稳压二极管和雪崩二极管的工作原理及选型学习总结
- java 软件流程图使用什么_流程图怎么画,教你正确使用流程图模板
- HackingLab 脚本关