MYSQL必知必会读书笔记 第一章(基础)
1.1 什么是数据库
数据库(database)是一个以某种有组织的方式存储的数据集合。 保存有组织的数据的容器(通常是一个文件或一组文件)
注意:人们通常使用数据库来代表他们使用的数据库软件。其实这是不正确的,确切的说,数据库软件应该成为DBMS(数据库管理系统)。数据库是通过DBMS创建和操作的容器。数据库可以是保存在硬件设备上的文件,但也可以不是。在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库;你使用的是DBMS,它替你访问数据库。
1.2 表
表(table) 某种特定类型数据的结构化清单。
注意:表明的唯一性取决于多个因素,如数据库名和表名等的结合。这表示,虽然在相同的数据库中不能两次使用相同的表名,但是在不同的数据库中query可以使用相同的表名。
表具有一些特性,这些特性定义了数据在表中如何存储,可以存储什么样的数据,数据如何分解,各部分的信息如何命名。描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)
1.3 模式
模式(schema) 为关于数据库和表的布局及特性的信息。
注意:是模式还是数据库,有时模式作数据库的同义词。遗憾的是,模式的含义通常在上下文中并不是很清晰。
1.4 列
列(column) 表中的一个字段。所有表都由一个或多个列组成。
注意:分解数据。正确的将数据分解为多个列极为重要。例如城市、州、邮政编码应该总是独立的列。通过把它分解开,才有可能利用特定的列队数据同行排序和过滤。
1.5 数据类型
数据类型 (dataType) 所容许的数据的类型。每个表列都有相应的数据类型,它限制该列中存储的数据。
1.6 行
行(row) 表中的一个记录。
注意:是记录还是行? 你可能听到用户在提到行时称其为数据库记录。在很大程度上,这两个术语可以相互替代的,但是从技术上说,行才是正确的术语。
1.7 主键
主键(primary key) 一列(或 一组列) ,其值能够唯一区分表中的每一行。
注意:应该总是定义主键,虽然并不是总是都需要主键,但是大多数数据库设计人员都应该保证他们创建的每个表具有一个主键,以便于以后的数据操作和管理。
表的任何列都可以作为主键,只要它满足以下条件:
* 任意两行都不具有相同的主键值。
* 每一个行都必须具有一个主键值(主键值的列不允许NULL值)
这里的规则是MySQL本身强制执行的
主键值使用的好习惯:
1. 不更新主键列中的值。
2. 不重用主键列的值;
3. 不在主键列中使用可能会更改的值。(例如,如果使用一个名字作为主键以标识某个供应商,当改供应商合并和更改其名字时,必须更改这个主键)
相关推荐
-
使用MySQL中的AVG函数求平均值的教程
MySQL的AVG函数是用来求出各种记录中的字段的平均值. 要了解AVG功能考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | J
-
MYSQL必知必会读书笔记第三章之显示数据库
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. show column from tablename: 对每一个字段返回一行,行中包含字段名,数据类型.是否允许NULL.键信息.默认值以及其他信息. describe 语句: MySQL支持使用describ作为show columns from 的一种快捷方式.describ tablename 所支持的其他的show语句: show s
-
MySQL 备份还原数据库批处理
1.备份数据库(单个表备份) bk_table.bat 复制代码 代码如下: mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk -t database1 table1>table1.sql mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk -t database2 table2>table2.sql mysqld
-
MYSQL必知必会读书笔记第八章之使用通配符进行过滤
mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用通配符的技巧: 1.不要过度使用通配符.如果其他操作符能达到通配符相同的效果,应该优先的使用其他操作符 2.在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处.把通配符置于搜索模式的开始处,搜索起来是最慢的. 3.仔细注意通配符的位置,如果放错了地方,可能不会返回想要的结果 注意事项: 区分大小写:
-
MYSQL必知必会读书笔记第二章之版本更改
MySQL的当前版本为版本5,以下列出最近版本的主要更改: 4.---------InnoDB引擎,增加了事务处理.并.改进全文搜索等支持. 4.1--------对函数库.子查询.集成帮助等重要增加. 5.-------------增加了存储过程.触发器.游标.视图等 以上内容是小编给大家介绍MYSQL必知必会读书笔记的相关知识,希望对大家有所帮助!
-
MySQL数据入库时特殊字符处理详解
在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 ("")开头,称为转义字符. MySQL 识别下列转义字符: 0 一个 ASCII 0 (NUL) 字符. ' 一个 ASCII 39 单引号 ("'") 字符. " 一个 ASCII 34 双引号 (""") 字符. 一个 ASCII 8 退格符. 一个 ASCII 10 换行符. r 一个 ASCII 13 回车符. t 一个 ASCII 9 制表符(TAB
-
MYSQL必知必会读书笔记第五章之排序检索数据
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 其实,检索出的数据并不是以纯随机顺序显示的.如果不排序,数据一般将以它底层表现中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响.因此,如果不明确控制的话,不能依赖该排序顺序. 在多个列上将序排列 :如果想在多个列上进行将序排列,必须每个列指定DESC关键字
-
MYSQL必知必会读书笔记第六章之过滤数据
mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. where子句的位置,在同时使用ORDER BY 和WHERE子句时应该让ORDER BY 位于where之后,否则会产生错误. 1.不匹配检查 复制代码 代码如下: SELECT vend_id FROM products where vend_id <>1003 等同于 复制代码 代码如下: SELECT vend_id
-
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
本文实例讲述了php+mysqli预处理技术实现添加.修改及删除多条数据的方法.分享给大家供大家参考.具体分析如下: 首先来说说为什么要有预处理(预编译)技术?举个例子:假设要向数据库添加100个用户,按常规思路,就是向数据库发送100个执行请求,此时,按照 mysql 数据库的工作原理,它需要对每一条执行语句进行编译(这里就有100次).所以,这里的效率是非常低的. 预处理(预编译)技术的作用,就是减少编译的次数和时间,以提高效果.通过一个案例来说明,预处理(预编译)技术是如何做到的(好吧,先
-
批处理命令 BAT备份MySQL数据库
工作环境 Windows Server 2003 ,MySQL安装目录 D:\MySQL , WinRAR 安装目录 C:\Program Files\WinRAR\WinRAR.exe 备份数据存储的路径为 E:\数据备份,好了下面开始写DOS批处理命令了. 复制代码 代码如下: set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" md "E:\数据备份\%ymd%" "D:\MySQL\bin\mysqldump.ex
-
MySQL中的max()函数使用教程
MySQL的max()函数是用来找出一个记录集中的最大值记录. 要了解MAX功能考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1
-
MYSQL必知必会读书笔记第四章之检索数据
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显示的数据会与其他的地方顺序不同.出现这种情况很正常.如果没有明确排序查询结果.则返回的数据没有特殊意义.返回数据的顺序可能是是数据被添加到表中的顺序,也可能不是.只要返回相同数目的行,就是正常. 注意:SQL语句和大小写 请注意,SQL语句不区分大小写,因此select和SELECT是相同的.同样,
-
MYSQL必知必会读书笔记第七章之数据过滤
mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 计算次序: where 可以包含任意数目的and和or,允许两者结合以进行复杂和高级的过滤.但是SQL在操作or之前会优先的处理AND操作符.如果想优先的使用or的条件可以使用括号. in:为什么要使用in操作符?其优点具体如下. 1.在使用长的合法选项清单时,in操作符的语法更清楚直观 2.在使用IN时,计算的次序更容易管理
-
MYSQL必知必会读书笔记第十和十一章之使用函数处理数据
mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 拼接字段 存储在数据库表中的数据一般不是应用程序所需要的格式.我们需要直接从数据库中检索出转换.计算或格式化过的数据:而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化. 计算字段(字段 = 列,不过数据库列一般称为列,而字段通常用于计算字段中)并不实际存在于数据库表中,计算字段是运行时在select语句内创建的
随机推荐
- oracle 11g RAC 常用命令整理分享
- 一个简单的合并txt的批处理
- 弹出消息的bat代码(msg命令详细解释)
- IOS代码笔记之仿电子书书架效果
- C# 没有动态的数组,可以用arraylist或list取代
- 简单实现bootstrap选项卡效果
- PHP分页显示制作详细讲解
- 基于Python实现的百度贴吧网络爬虫实例
- 在windows下的安装Docker的教程
- js跟随滚动条滚动浮动代码
- 模拟鼠标事件的实现思路及代码
- 如何获得外部优质网站的链接pr
- 简单对比分析JavaScript中的apply,call与this的使用
- php 参数过滤、数据过滤详解
- Android仿一点资讯收藏Toast动画效果
- 详解linux usb host驱动编写入门
- ConcurrentMap.putIfAbsent(key,value)用法实例
- PHP使用curl_multi_select解决curl_multi网页假死问题的方法
- Vue拖拽组件列表实现动态页面配置功能
- 利用栈使用简易计算器(Java实现)