跟我一起学习MySQL技术内幕(第五版):(第一章学习日记4)

1.4.6创建表
1.4.7添加新行
1.4.8重置sampdb数据库

前天的1.4.6啥也没说,文字量比较大,今天又细细读了一遍,把看到的写下来。

1.美史联盟表
president 表 和 member 表
有一句话我觉得很重要:在把数据值放入数据库之前,最好尽可能多地对数据进入深入的了解。
就像上边的例子,总统名字有的是会有后缀的,这个问题我们要考虑到,就应该新建一个后缀的列(而且不能有not null的约束条件,毕竟不是每个人都会有名字后缀),这就是对实际情况的全面考虑。

然后这两页的文字就是在对这两个表里的具体列的说明,让读者充分了解到了我们对待一类数据应该做怎样的思考。认真体会,感觉,我们即使再编写多么华丽的操作,如果这个表的本身结构内容差得很多,一切都是无用之功。

  创建美史联盟表

这里敲一段代码,当练手,

mysql sampdb



create table president ( last_name varchar(15) not null, first_name varchar(15) not null, suffix varchar(5null, city varchar(20) not null, state varchar(2) not null, birth date not null )

介绍下 这里边的数据类型,varchar(n)是存放长度可变的字符型值
date 是日期类型,格式是year-month-day
not null 是指如果你添加一行元素的时候,这一列所对应的元素不能是空,而 null情况下空与否都可以,值就是一类在最基本的限制条件

如果觉得自己命令写得很熟练了 ,可以在cmd下直接调用sampdb包里边的sql执行文件,

mysql sampdb <create_president.sql

对于第二个member表 ,也存在一些新的东西

介绍下,

int 存放整数
unsigned 学过一些语言的数据类型的都会知道unsigned 下,数据值不能为负。

auto_increment 这是数据库给我们的一个很方便的东西,它存放序号,而且是添加行时自动生成的

接下来介绍书中提及的一些命令

describe (简写desc)显示整个表的内容,
explain
show columns from president
show fields from president

2.成绩考评项目表

四页的文字,从一个excel 蜕变成了四(五)个小表,它分析了多组数据在一起时的不便与不适应,然后提出了很多先前的表的缺点,并进行了彻底而详细的改进,为了,我觉得就是让我们理解之前我提到的那句话,对数据进行了透彻的分析后,再进行表的创建与构造,这样优秀的表能省去我们进行一系列操作的时候的冗余,读这几页书,应应该身临其境,细细品味,体验最后我们创建最终表时候的优越性。

之后是四个表的创建
这里有涉及到了 许多新的先前未接触的东西
enum 枚举类型
engine=innodb 存储引擎
primary key 主键约束
foreign key 外键约束

存储引擎,两种约束后边还会讲到,这里要先大概理解它们的意义。

1.4.7 添加新行

1.利用insert

insert into table_name values (column1 ,column2,.....) insert into table_name (col_name1,col_name2,....) values(value1,value2,...) insert into table_name set column1='asdfg',.........;

第一种插入新行要求输入一行全部的值,
第二种只需要插入你指定的列的值,注意 not null的类型不允许这一列的其他元素存在值,而自己不存在值
第三种是使用的一系列的列、值形式进行赋值

接着 这本书上用键的约束追查了输入的值是否合法,我们在期初创建表的时候,如果用了键的约束(即对应的值不可以相等)这时就会报错,从而我们也会发现到我们的键的作用。

2.利用文件

load data 语句 非常方便 注意它的使用原理 ,读取文件的原理,各列以制表符分割,末尾都是换行,顺序相同,在sampdb包里有一些txt文件 我们可以拿来一试,从而把我们的数据表丰满起来。

还有注意的是书上提供的不能读取数据时的几种调试方法 ,如果实验不成功的话,可以按照操作进行,抑或百度。

1.4.8
重置sampdb数据库

是不是看见了一大堆 ,不要方,往下看,就一句,现在装win的还是比较多,

init_all_tables.bat sampdb

接下来的1.4.9信息量会超级大 ,我估计我上学期学的那点数据库知识,下一节讲完也就要讲的差不多了,

既然选择了开始,那么我就要坚持下去,

十二点半啦,早上还要爬起来早自习,我撤了。

你可能感兴趣的:(mysql)