最近的学习内容是数据库相关的一些知识,主要以MySQL为主,参考书籍——《MySQL必知必会》
MySQL学习及下载地址:https://dev.mysql.com/
MySQL学习使用注意事项:
1、必须访问一个已有的MySQL服务器,需要一个服务器账号(一个登录名和一个口令)
2、MySQL运行在所有主要平台上,包括Windows、Linux、Solaris、Mac OSX等
3、一个客户机软件(用来实际运行MySQL命令的程序),最容易得到的是mysql命令行实用程序(包含在每个MySQL安装中)
4、安装MySQL时都会提示重要信息,比如安装位置(默认)、root用户口令、端口、服务或进程名等,都可以使用默认值
5、多个MySQL服务器副本可安装于统一机器上,只要每个服务器使用不同的端口即可
一、数据库基础
1、数据库
数据库(database):一个以某种有组织的方式存储的数据集合,保存有组织的数据的容器(通常是一个文件或一组文件)
数据库管理系统(DBMS:database message system):数据库是通过DBMS创建和操作的容器
2、表
表(table):某种特定类型数据的结构化清单
表是一种结构化文件,可用来存储某种特定类型的数据
数据库中每个表都有唯一的一个名字,用来标识自己,表名的唯一性取决于多个因素:如数据库名等结合(相同数据库不能出现名字相同的表,但不同数据库可以使用相同的表名)
表具有一些特性,其定义了数据在表中如何存储,比如:存储什么类型的数据,数据如何分解,各部分信息如何命名等
描述表的这组信息可以称为“模式”,其用来描述数据库中特定的表以及整个数据库(和其中表的关系)
模式(schema):关于数据库和表的布局及特性的信息,一般指给予表的一些定义
3、列和数据类型
表由列组成,列中存储着表中某部分的信息
列(column):表中的一个字段;所有表都有由一个或多个列组成的
分解数据:正确的将数据分解为多个列极为重要:例如省市县应该是独立的列,通过分解,才可能利用特定的列对数据进行排序和过滤,使得检索和访问更加方便(例如找出特定市县的相关数据等)
数据类型(datatype):所容许的数据的类型:数据库中每个列都有相应的数据类型,其定义列可存储的数据种类(限制/容许该列中存储的数据)
作用:①限制可存储在列中的数据种类(例如防止在数值字段中录入字符值)
②帮助正确的排序数据
③对优化磁盘使用有重要作用
4、行
行(row):表中的一个记录
表中的数据是按行存储的,保存的每个记录存储在自己的行内;如果将表想象为网格,网格中垂直的列为表列,水平行为表行
5、主键
主键(primary key):一列或一组列,其值能够唯一区分表中的每一行;唯一标识表中每行的这个列(或这组列)称为主键
主键用来表示一个特定的行;没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证操作只涉及相关的行
主键并不总是需要,但大多数情况下都应保证每个表具有一个主键,以便于数据操作和管理
表中任何列都可以作为主键,只要满足以下2个条件:
①任意两行都不具有相同的主键值;
②每个行都必须具有一个主键值(主键列不允许NULL值);
主键值规则:主键通常定义于表的一列上,但也可以一起使用多个列作为主键,这种情况下,上述2个条件必须应用到构成主键的所有列,所有列值的组合必须是唯一的(单个列可以不唯一)
设置主键的几个好习惯:
①不更新主键列中的值;
②不重用主键列的值;
③不在主键中使用可能会更改的值(例如使用电话号码作为主键以标识某个人,当该人更改电话号码时,必须更改这个键)
二、SQL简介
SQL:结构化查询语言(Structured Query Language)缩写,一种专门用来与数据库通信的语言
设计SQL的目的是很好的完成一项任务,即提供一种从数据库中读写数据的简单有效的方法
优点如下:
①几乎所有的DBMS都支持SQL
②SQL简单易学,语句由描述性很强的英语单词构成,而且单词的数目并不多
③一门强有力的语言,灵活使用其语言元素,可进行非常复杂和高级的数据库操作
原文:http://www.cnblogs.com/imyalost/p/6362054.html