发表于: 2017-07-15 21:06:19

10 1016


任务一,第三天

问题:任务一的步骤5为什么要有create_at,update_at这两个字段?还有加上int他们仨的类型为什么是long?还望路过的师兄师姐以及任何懂的人赐教,不胜感激

一 今天已完成的事情:

1 了解了如下概念知识:

(1)SQL语句可以完成下列任务:

A 检索信息

B 信息更新

C 改变结构

D 更改安全设置

E 增加或回收用户对数据库、表的许可权限

其中ABC是程序员干的事情,DE是数据库管理员干的事情,数据库管理员还有个英文缩写,叫DBA。

(2)SQL语句分为如下类型:

A 查询语句 B DML(数据操作语言) C DDL(数据定义语言) 

D DCL(数据控制语言) E 事务控制语句

DDL与DML的区别:DDL操作数据库对象,DML操作数据库数据。

(3)DDL语句的基本语法

A 创建 create table

建表语句:

create table 表名

(

字段名 数据类型; 

字段名 default 默认值;//给字段名初始化

)

注意:定义字段与定义变量相反,定义字段是字段名在前 数据类型在后,

另外,赋初值不用=而用default关键字。字符串

B 修改表 alter table 表名

 a 增加字段 alter table 表名 + (add) 

   增加的字段若为单个则可以不加圆括号,若为多个则要加圆括号,

   跟IF语句有点像。

 b 修改字段 alter table 表名 + (modify)

写到这的时候去吃饭睡觉了,醒来查看了我的小铃铛,张帆师兄给我回话了,要我结合任务来写干货。我觉得我写日报的目的是记录我自己的学习记录,我学了什么就应该记录什么。我现在不着急做任务,先把《疯狂Java讲义》中关于数据库的基本概念基本语句来实际地理解代码敲一敲,然后再做任务。这样再做任务就应该简单多了。

   据书上所说,这个modify只能修改已存在的字段的数据类型,

   在MySQL中每次只能修改一个。

 c 删除字段 alter table 表名 + (drop)

   删除表格式: drop table 表名;

C 两种特殊语法:

 a 重命名表 

 格式:

 alter table 表名 

 rename to 新表名;

 //《疯狂Java讲义》中P576重命名格式不对,最后少了个;

 b 改变列定义

 格式:

 alter table 表名

 change 旧字段 新字段 数据类型;

D truncate 大招,删除表中全部数据,只保留表结构

  格式:

  truncate 表名

  //truncate 英文:动词,缩短

(4)DML语句的基本用法

A DML的基本作用:老一套,插入数据,修改数据,删除数据

B 插入 insert into 

 格式:

 insert into 表名(字段名)

 values(字段的值)

C 修改 update

 在看这部分的时候才具体地接触到了where。

 我对where语句的理解:还是类比法,where类似于if语句。如果我们没有写where语句,

 意味着everywhere,所有的记录都会被修改。若有where,则执行where括号里的语句,

 符合条件的修改否则不动。

师兄张帆:where条件它到底搜的是什么属性,列还是行!列有index,行如何?数据是怎么定位其中的某个具体内容,是否是我们平常以为的以行,列为坐标!

答:where搜的是列属性,也就是字段,满足条件的字段都能被修改操作。

列有index,行如何?:行是对象啊,这玩意怎么搜?还望师兄赐教。。。

D 删除 delete from

 格式:

 delete from 表名

 where 条件;

 删除满足条件的行,不指定的话就删除所有行。

 上面的truncate相当于不带条件的delete from。

2 实战做任务:(排版稍微有点乱,因为是一边写程序翻书一边写日报,不便之处敬请原谅!)

说明:用的是MySQL-Front,不是navicat。图标颜色不喜欢,还好不是一坨一坨的。不然就让人恶心了。

创建数据库:create datebase mission_one

创建表,将第一天的图定义成字段:

create table newHands_information

(

       id int(100) auto_increment ,

       real_name varchar(10),

       QQ int,

       study_type varchar(10),

       expect_enterhell_time date,

       grduate_shool varchar(10),

       online_student_id varchar(10),

       daily_link varchar(50),

       wish varchar(50),

       primary key(id)

截屏用的是QQ的快捷键Ctrl+Alt+A。截完后复制粘贴,就不用点上面的图片支持拖曳上传什么的啦。

PS,我还是习惯用EditPlus来写日报,之前编Java程序就是用这个,然后Ctrl+1代替了在CMD上编译(javac)程序,Ctrl+2代替了运行(java)程序,超级方便。不过还是应该感谢CSS-错遇长老给我提的宝贵意见。印象笔记用不习惯。

对照步骤5,发现漏了两个字段,create_at,update_at,而且这三个字段要用long类型,也就是bigint。

好吧,修改ID的类型,增加两个字段:

alter table newhands_information

modify id bigint(20);

alter table newhands_information

add

(

   create_at bigint(25),

   update_at bigint(25)

);

完成。改是改好了,就是不懂为毛要加上这两个字段,有什么用?为什么三个字段都要用long型?还望路过的师兄师姐以及任何懂的人赐教,不胜感激。


沈佳宜,偶不,刘佳义同学,就你了。做到这里才发现少了“从何处了解修真院”这个字段,不加了,这个字段也不是很特殊。

步骤6主要使用的是DML语句,操作数据库的对象,主要用到插入这个语句。

在插入姓名的时候F9运行提示1366,一搜要修改字段的配置:

字符集改为utf8,问题解决。

继续添加QQ,问题来了:

度娘一搜,主键设为自动增量,问题解决。

到这里发现不对了查询一下:

两条记录!删掉所有记录,然后一次性插入所有的字段:

完成。

总结:今天的事情顺利了很多,但是往上翻了翻日报,没有学多少东西却一天又过去了,效率好低。感觉进度稍微有点落后,明天加油!提高效率!

那个饮食和运动就不总结了,矫情。

对了,说一句,莲子是用来烧汤的,不是用来焖饭的。今天用了几个莲子焖饭,饭好了莲子还有点脆生生的,不好吃,不过圆豌豆和瘦肉丁最好加上辣椒片儿就是绝配,标准的不用筷子的盖浇饭。

不以规矩 不成方圆 

二 明天做的事情:接着熟练SQL,多做任务,在保证质量的前提下加快任务的进度。


返回列表 返回列表
评论

    分享到