发表于: 2021-12-24 00:01:24
1 770
今天完成的事情:尝试完善数据库结构,实现基本功能,学习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字段设置了自增和主键,创建时间和修改时间字段都能正常工作了。
评论