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

一、数据

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

二、数据库的组成

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

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

图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/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 只要一个字段相同则只显示一条数据_数据库相关推荐

  1. JS实现数组每次只显示5条数据,首尾相连显示

    JS实现数组每次只显示5条数据,首尾相连显示 今天朋友问我,如何点击一个按钮,每次只展示数组中的五条数据,如果数据有13条,默认展示数组1-5,点第一次为6-10,第二次为11-13,第三次从头再来 ...

  2. powerbuilder freeform只显示一条数据的问题

    问题:pb中的freeform在显示数据时,明明数据库中有多条数据,可是显示在freeform中却只有一条. 在网上查了很多很多资料,怎么说的都有,但就是没一个说的是对的,真是让人无奈.网上说的最多的 ...

  3. php foreach 为什么在if条件下多条数据只取出一条数据_微信大牛教你深入了解数据库索引...

    ​| 作者 刘国斌,腾讯微信事业群研发工程师,目前从事企业微信的后台研发工作,已经参与企业微信消息系统.群聊.客户联系等企业微信多个核心功能的迭代. 数据库查询是数据库的最主要功能之一.我们都希望查询 ...

  4. c mysql显示多条数据_用一条mysql语句插入多条数据

    假如有一个数据表A: id name title addtime 如果需要插入n条数据 : $time= time(); $data = array( array( 'name'=>'name1 ...

  5. 关于51地图中循环根据经纬度获取地理位置只显示一条数据的问题

    最近在做一个gps系统,做到一个输出地理位置的小问题上卡了两天,总觉的应该很简单 但就是不出自己想要的效果 奉上代码 目前用的定时器 虽然不是很理想 但先这样用着 以后有了好的解决方案在改 var l ...

  6. mysql查出倒序第一条数据_[数据库]mysql 记录根据日期字段倒序输出

    [数据库]mysql 记录根据日期字段倒序输出 0 2016-07-21 11:00:17 我们知道倒序输出是很简单的 select * from table order by id desc 直接这 ...

  7. mysql查询第11到20条数据_数据库查询语句怎样查询一个表中的第15到第20条数据...

    展开全部 用row_number来查询. 具体方法如下:62616964757a686964616fe4b893e5b19e31333337613830 以sqlserver2008R2为例. 1.创 ...

  8. 分页查询,但是页面只重复显示一条数据

    情况:分页显示,页面只显示单条重复数据.数据库视图,查询显示正常,也无重复数据. 代码如下: 在查看EntityContext的数据就发现只有重复的数据,重复数据库第一条,发现应该不是逻辑问题. 最后 ...

  9. SQl语句查询重复数据 只显示其中一条

    SQL查询重复数据,只显示其中一条 有重复数据主要有以下几种情况: 1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 example: select distinc ...

最新文章

  1. js左侧三级菜单导航代码
  2. 图论 ---- C. Nastya and Unexpected Guest(图上最短路dp + 01bfs)
  3. CentOS7 设置开机直接进入命令行界面
  4. 泛读:CVPR2014:Discriminative Deep Metric Learning for Face Verification in theWild
  5. 使用taro命令(taro convert)转h5碰到的一些问题
  6. mysql 定一个函数_mysql自定义函数
  7. ansj 自定义 停用词_构造自定义停用词列表的快速提示
  8. zepto返回顶部动画
  9. 以太坊EVM在安全性方面的考虑
  10. 七、集合框架,Collection、list、set、map老师说集合学好了走到哪里都不怕
  11. 这份好用视频拼接的软件干货分享,值得收藏
  12. 水晶报表CrystalReports很强大也很简单!
  13. List集合排序之Java8stream流排序
  14. html5微信公众号开发,微信开放文档
  15. 解决Ubuntu16.04解压cudnn文件时报错could not create a hard link file
  16. 咖啡的合适温度(前缀和以及加减标记)
  17. mysql文本类型_mysql里存大量文本的数据类型是text吗?请详细说明一下
  18. 稳压二极管和雪崩二极管的工作原理及选型学习总结
  19. java 软件流程图使用什么_流程图怎么画,教你正确使用流程图模板
  20. HackingLab 脚本关

热门文章

  1. matlab barh命令,matlab中的bar, barh
  2. mysql pk_mysql_1
  3. 3m格式的文件怎么转换成mp3_怎么将电脑上的mp4文件转换成mp3格式
  4. 一道把递归、链表、引用、双指针都结合的题——回文链表
  5. 使用mcisendstring重复播放音乐文件
  6. 如何精准鉴别菜鸟和老手程序员 网友:精辟!
  7. 聊天机器人最难理解的 10 个词汇
  8. NSMutableArray遍历删除注意事项
  9. mysql数据索引失效_MySQL索引失效的几种情况
  10. fiddler如何显示IP地址栏?