发表于: 2021-12-24 00:01:24

1 419


今天完成的事情:尝试完善数据库结构,实现基本功能,学习sql基本功能语句。

明天计划的事情:换用Linux继续学习。


尝试完善数据库结构:

navicat界面


sql结构文件


navicat中的插入和修改结果。


6.从报名贴中找一条最近报名的师弟,用Mysql插入这条数据,并能够根据姓名查出来这条记录。

插入数据需要正确的格式,使用Excel表格作为中转,navicat有现成的功能用于导入,整理格式后成功导入。


SQL插入语句的格式为 insert into 表名 (字段1,字段2,字段3) values (内容1,内容2,内容3);

使用命令insert into text (A_name,A_QQ,A_type,A_jone_time,A_school,A_jnshu_id,A_daily_link,A_wish,A_teacher,A_source) values ('黄炜杰','9122757152','产品经理','2021年01月15日','厦门理工学院','2098','http://www.jnshu.com/school/43854/daily',' 如果我不能在IT特训营拼尽全力,为自己以后的修行路上打好基础,就让我变胖2斤!','吴烁','网站搜索');

SQL语句查询姓名,使用了:

select * from text where A_name like '黄炜杰%';

成功查询到结果。


7.分别用Navciat和Sql语句去将本条数据记录的报名宣言改成老大最帅。

navicat可以直接修改操作。

sql修改语句,使用了:update 表名 set 字段名 = '修改内容' where 判定条件;

update text set A_wish = '老大最帅' where A_id = 57;

之后单独查询行使用了:

select * from text where A_id = 57;

成功得到修改后的结果。


8.将表导出成Sql文件,并使用navciat和Sql分别尝试删除此条数据,并用之前备份的Sql恢复。

navicat删除数据很简单,选中并右键删除;sql语句用到delete from 表名 where 判定条件;


9.给姓名建索引,思考一下还应该给哪些数据建索引。

navicat中添加索引。

根据查询需求,A_QQ,A_type,A_jone_time,A_jnshu_id,A_teacher,A_source字段应该是有可能用上的,需要添加索引。


10.插入10条数据,查看有索引和无索引的情况下,Sql语句执行的效率。

少量数据的情况下所用时间相差不大,带索引的略快。



遇到的问题:

1.navicat中timestamp类型默认并没有CURRENT_TIMESTAMP选项无法实现功能。

解决方案:导出SQL文件,仿照格式尝试修改,导入后下拉选项中出现CURRENT_TIMESTAMP并可以使用。

查到的用法:


2.timestamp(时间戳)字段类型只能存在一个。

解决方案:搜索得知是由MYSQL版本问题导致。暂时不换MYSQL版本,通过尝试使用简易触发器实现基本功能。

CREATE TRIGGER 触发器名 触发条件 触发事件 ON 表名 FOR EACH ROW 执行语句;

CREATE TRIGGER `text` BEFORE INSERT ON `text` FOR EACH ROW SET NEW.`A_create_at` = NOW();

A_create_at触发只能使用before,在插入命令前向指定位置写入当前时间。


3.MYSQL命令行端口中,中文显示为乱码无法使用。

解决方案,找到配置文件并将字符编码default-character-set修改为gbk。


收获:字段类型的处理较为麻烦,花费了大量的时间尝试实现基本功能,给A_ID字段设置了自增和主键,创建时间和修改时间字段都能正常工作了。



返回列表 返回列表
评论

    分享到