[]编程笔记]大脑进化过程

MySxQL可视化工具的常用关键字和乱码问题

使用可视化工具时遇到的一个问题.

昨天我用黑框口储存了一些历史人物信息,今天安装了MySQL的可视化工具SQLyog,在用这个工具打开我之前储存的数据的时候,我发现里面所有的中文数据都变成了乱码了,于是我做了各种有关调试字符集的操作,但依然没有将数据恢复成中文.然后我就上网找答案,网上有各种各样的答案,每一个我几乎都试过了,但依然没有解决我的问题,最后我找了老师才解决了问题. 原因是因为某些编码规则,原来的数据已经无法再变回中文,所以我再改也改不回来了.但之后的添加的数据是可以显示中文的,

如果你以后再用到这类工具的时候,最好先用一些数据测试一下工具的属性,不要直接把数据仍进去.

在数据库查询数据常用的关键字和语法

1.我创建了两张表,一张是部门表,里面有人事部,后勤部,保安部.一张是员工表,里面有6个员工.我在给两张表添加关联的时候出现了问题:alter table ku.yg_table add constraint FK_yg_table FOREIGN KEY ('duishu') REFERENCES bm_table (bid)

什么意思,根本看不懂......过了一会儿,我找出问题所在,(duishu)是我定义的字段,它类名字是用引号快起来的,于是我去检查了一下我定义的字段类型,原来是我把数字类型定义成了字符类型,这件事情告诉了我,类型定义错误可能是以后常会遇到的问题,还有,不管问题的表达形式是中午还是英文,只要耐下性子分析,总能解决问题.

2.成功的完成一对多的表格案例,我又创建了一个数据库,在里面创建了3张表,这次我的需求是让目标形成多对多的关系.我创建了一个学生表,里面有学生的id和姓名,接着我创建了一张课程表,里面有课程的id和课程名,一个学生可以选择多门课程,一门课程也可以被多名学生学习.这就是多对多的关系.要想表达这种关系,我必须再创建一张表,把学生的id和课程的id都放进去,再做的时候我又遇见一个错误,那就是在每次创建关联的时候系统会给一个默认关联名,你在创建第二个关联的时候,依然是那个默认名子,于是名字重复了.还有,通过这次错误,我知道了在哪里看错误信息,我之前一直在最上面,可事实是在下面......

这大概也是粗心之人长犯之错,写下来注意下.

3.这次增加了一个需求,每个学生都有自己的班级,班级和学生的关系是一对多,一个班级可以有多

个学生,一个学生只能有一个班级.建立一对多关系有一个原则:必须在多的那个表里添加一个外键(和外部链接的"键"(代表唯一)).

4.这是一个练习题:实现一个网上商城案例,在商城中会有用户,商品,订单,商品分类。

分析:

它们的流程是:用户---订单---商品

用户和订单的关系:一个用户可以有多个订单,一个订单只能有一个用户,关系为一对多.

商品和订单的关系:一个商品可以有多个订单,一个订单可以有多个商品,关系为多对多.

商品和商品分类:一个类里面可以有多个商品,但普遍一个商品只能属于一个类.关系为一对多.

分析其实写的很对,但是最做的过程中就乱套了,反过来把分析改了好几次,改来改去又改回来了.

多表查询

(查询语句中的*号是所有记录的意思)
交叉查询:SELECT * FROM 表名1,表名2;
内连接查询:
    显示内连接:SELECT * FROM 表名1 INNER JOIN 表名2 WHERE 表头名=表头名;
            // 查询  *   从 此表到  内部连接的  表2  表头相等的那些.
            //如果不加WHERE,得出来的数据有重复(也叫垃圾数据)
    隐式内连接:SELECT * FROM 表名1,表名2 WHERE 表头名=表头名;
            // 查询  *  从   表1到表2   表头相等的那些.
            // 如果不加WHERE,得出来的数据有重复,
外连接:
    左外连接:SELECT * FROM 表名1 LEFT OUTER JOIN 表名2 ON 表头名=表头名;
            //查询  * 从   表1 的左边外面的链接   打开表2找两个表头里相等的元素.
            //如果不加会报错
    右外链接:SELECT * FROM 表名1 RIGHT OUTER JOIN 表名2 ON 表头名=表头名;
            //查询  * 从   表1 的右边外面的链接   打开表2找两个表头里相等的元素.打开表2找表头相等的.                 
            //如果不加条件会报错.       

子查询-IN    SELECT * FROM shangping WHERE sid IN(      
            //查询 所有记录 从  表1    sid里 1,7     
            //这里括号外的查询条件由括号里面的查询结果决定      
            //注意:里面如果有多条查询结果,就会报错    
            SELECT yid FROM yonghu WHERE qian<100000);     
            //这行语句得出的id是1,7               

子查询-EXISTS
            SELECT * FROM shangping WHERE sid EXISTS(
            //如果括号里面所查询的物品存在,就执行括号外的语句.
            SELECT yid FROM yonghu WHERE qian<100000);
        

子查询-ANY
            SELECT * FROM shangping WHERE sid<ANY (
              SELECT did FROM dingdan);
            //sid大于括号里面的任意数,举个例子:
            //括号内id--1,2,3,4 (用这里面任意一个数和它比较,你会发现,用里面最小的数比较是最省事的.)
           //括号外id  括号内id
                1   >   1 不成立
                2   >   1 成立
                3   >   1 成立
                4   >   1 成立
            //得出来的id号就是2,3,4
            //有人会问,为什么要用最小的数来比较呢?这里面其实没有什么大不了的逻辑,只是用最小数来比较会省事一些.
            //这个WHERE和比较试中间可以加个NOT,为反条件执行.
            //我有一个问题:如果把 > 换成 < 结果是什么样的?


子查询--ALL
           SELECT * FROM shangping WHERE sid>ALL (
           SELECT did FROM dingdan);
           //这个比较要求,查询大于括号内所有id的括号外id.
           //这个WHERE和比较试中间可以加个NOT,为反条件执行.

查询练习

先找出分均分大于80的人的id,再用COUNT统计一共有多少id
先找出分均分大于80的人的id
SELECT xid FROM chengjibiao GROUP BY xid HAVING AVG(chengji>80)
再用COUNT统计一共有多少id
SELECT COUNT(*) FROM student s WHERE s.xid IN(SELECT xid FROM chengjibiao GROUP BY xid HAVING AVG(chengji>80));

本来还有几个练习,但因为自己太笨,暂时没做出来,于是就只写了一道.

解释部分

这篇文章可以说是笔记,也可以说是我的进化记录,因为在做这些事情的过程中,我在弥补我的思维漏洞.学习这件事,一定要放弃自己智商.智商这东西学习不能靠它.我总觉得自己解决问题是一件很了不起的事情.虽然大多数人认为效率更重要,认为时间是宝贵的,15分钟解决不了一个问题是可耻的.这时候就要请人帮忙,说这叫做面向对象的思想.

但我不是这么定义效率的.我认为的效率是多维度的,而不是一个维度上的15分钟,对于人来说,分析问题的能力可以说是学习能力中最重要的,没有之一.我常常一道题要做很长时间,最长的一次是从中午一点做到晚上八点,于是我就思考,我什么我的速度会这么慢,而有的人10分钟就搞定了.这些差异是怎么来的?

差异来自积累,一切的差异都源自积累,分析能力的差异也必须来自积累.

重新定义效率

下面所说的效率,仅代表学习效率.

你所认为的效率正的是效率吗?上面说了,分析能力是积累出来的,那么请问!你每一次都叫别人来解决问题,你的分析能力从哪里来?所以,你所认为的高效,本质上是用另一个更为重要的方面的低效换来的.我知道一个简单易懂的提高分析能力的方法:

  • 遇到问题自己解决
  • 解决不了就记录下来,以后解决.

这样一来,虽然你在单位时间解决问题变慢了,但是你在解决问题的时候不仅增长了知识,培养了耐心,还积累了分析能力,这样一来,你是一份努力三份回报,这才是效率吧!

....

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容