Brief is Life, Love is Long.

2018沈阳东软睿道Java实训笔记系列 No.2:MySQL数据库 第二部分 2018-07-03

前言/吐槽:

哦……原来老师会读英文……只是考虑俺们的水平才念的字母而已……好歹俺们也算是一本211学校的正规军吧……呵呵……

下面进入正题


SQL语句的注释写法

单行注释:
# This is a comment.

多行注释:

/*
   This is a comment.
*/


约束

其实上一篇当中已经涉及到与约束相关的内容了,但是不够详细也不够全面,在这里比较认真地说一下。
约束就是限制字段的类型和相关关系。类型指的就是数据类型,相关关系指的就是非空,非重复等等。

常用的对表的约束类型有8种:

  1. 类型约束,也就是限定数据类型,上一篇提到了,数据类型不少,找百度去。
  2. 主键约束,primary key,要求不能重复且不能为空,每个表只能有一个主键约束。
  3. 非空约束,not null,要求该列的任何字段均不能为空。
  4. 自动标识约束,auto_increment,也叫自增。如果用户插入数据的时候不对具有自动标识约束的属性赋值,则该列的值自动使用自增量,否则使用用户输入的值。
  5. 唯一键约束,unique,要求该列不能重复但可以为空,每个表可以有多个唯一键约束。
  6. 检查约束,check,要求某列字段的值必须满足某种条件,否则拒绝插入。注意,MySQL基于兼容性考虑,会自动忽略本约束。
  7. 默认约束,default,如果用户在插入数据时没有对这一列的字段赋值,则默认填一个设定的值。
  8. 外键约束,foreign key,与之相关的内容将在下一篇中的“主表与从表”部分详细说明。

删除表或表中数据

(统称为删除表操作)

1. 只删除数据,自动标识不清零
delete from <表名> where <条件>;
该操作虽然会删掉该列的所有数据,但不会重置自动标识约束auto_increment产生的自增量。也就是说,如果在表尾删除数据,那么再次插入的数据的自增量就是在表尾被删除的那一行的自增量的下一个值。举个例子:

# 表开始
...
4 小明 男
5 小王 女
# 表结束

# 删除第五行

# 表开始
...
4 小明 男
# 表结束

# 在表尾插入一条记录

# 表开始
...
4 小明 男
6 小红 女
# 表结束

由上述示例可以看出,自增量出现了不连续现象。
在上一篇的查询部分也提到过,若条件为空(不写where <条件>部分),则意味着对所有数据生效。





继续阅读 >>>

2018沈阳东软睿道Java实训笔记系列 No.1:MySQL数据库 第一部分 2018-07-02

前言

终于来到了东软!俺当年还好顿BB来着,俺要是考不上一本就去念大连东软!结果考上了居然也来了,只可惜是沈阳的不是大连的……

俺是非常不喜欢沈阳这个城市的,正如我在来的路上和本人自四年级起就认识的一位艺术口的通过微信提到过的我对沈阳的评价:

沈阳的城区给人的感觉异常压抑。我去过香港,香港的马路比沈阳更狭窄,两侧的楼比沈阳的更高。但是我还是能从香港体会到发展的活力,以及底层市民的挣扎。沈阳,马路比香港宽,楼也比香港矮,虽然能看到的天更宽一些,但是,只有死气沉沉的感觉,极其压抑。我认为沈阳是一座已经死掉的城市。虽然城市中还有一群没有死掉的人。

果然,一到沈阳,我的鼻子就又挂掉了,根本喘不过来气,真是要了命了……

俺们管行政的老师是个目测40多岁的年迈女性,姓金。说年迈其实不很恰当,毕竟才目测40多岁,但我实在想不到其他的形容这种年龄的词语了。说年迈更多是出于礼貌,个人感觉说成“老女人”应该会更恰当,但又不能这么说,总感觉有贬义的成分在其中……

俺们管教学的老师是个男的,姓高,目测也得将近50岁,头发还剩不少,而且还挺黑的,嗯,不仅头发黑,人也挺黑。

俺们QQ群里也有个老师,不知道是不是上述的行政老师,感觉应该不是,应该是俺们学校哈工程的实习负责老师。这老师在群里发言的时候总喜欢在句末加一句“呵呵”,让人感觉极其鬼畜,因此在群内掀起了一大股模仿这种语气的浪潮,呵呵。出于此因,本系列文章也将模仿这一老师的“呵呵”风格,经常性地“呵呵”以下,以环节本文写作过程中压抑而纠结的气氛。

东软这宿舍还行,至少有个独卫兼独浴,方便了天天洗澡,至少让这个难熬的沈阳的夏天不至于过于难熬……网络和市场价相比虽然贵了不少,但是用起来感觉还行,8个人办了20Mbps的带宽,也就是高峰时段打游戏的时候会偶尔卡顿以下而已,感觉上应该是比哈工程的校园网强了不少。

其实说是实习,实际是实训,也就是“实地培训”,说到底就是培训而已。也就是换了个地方无所事事而已……罢了罢了……写这一系列的文章,实质上是因为学校要求撰写“每日实习笔记”。反正也要写,不如就写的好一点,发到俺的网站上。当然了,交给学校的部分是不会有这一系列和实习学到的“知识”无关的部分的。

实习有 Java 和 Python 方向可选,我选的当然依然是亘古不变的 Java 方向。那么……也没啥别的可以说了,下面就是正文了。

友情提示且着重强调一下,英语不好的同学可以考虑先去学学英语再来学计算机,要不不仅仅是指令难以理解和记忆,更是连报错都看不懂,尴尬得很。还有,英语再惨也不要像老师这样按字母读单词,会要人命的,呵呵。

废话结束,先来整理一些SQL语句。

约定:SQL语句部分的所有非关键字或非SQL语法内容均用<...>标识,替换为具体内容时应连同<...>删掉。

本文介绍对数据库的基本操作语句,如:
创建数据库/数据表,使用数据库,基本插入/查询数据,注释的写法,分页查询等等……

显示数据库:
show databases;

系统将返回当前数据库系统中所包含的所有数据库名。
从这一最简单的命令可以看出,SQL语句以“;”作为一行语句的结束,也就是一次“完整操作”的结束。


继续阅读 >>>

在2018年高考后致 Crane Wang 一封信 2018-06-09

To Crane Wang:

(唉……大学没有语文课……真是苦了我这学计算机的工科生了……)

本来是想赶在你考试之前写一篇文章,起到加油鼓劲的作用,顺路再提醒一些考试时需要注意的事情。后来发现,距离我的高考已经两年过去了,一是早就已经没有当年那种意气风发的气势了,几经抄手机却根本写不出来那种激扬四方的文字,当年高考时的心境早已遗落;二是仔细一想,对我有用的东西也许并不那么适合你,你的稳重有目共睹,而且毕竟这么长时间过去了,我高考前后的记忆也随着当年的气势一同消逝了。考虑到 Mushy Zhang 应该已经到考点为你们加油鼓劲了,我也就没必要再添油加醋,无病呻吟了。

于是乎,我决定尽量赶在出分或者报考之前,写一些具有实际作用的东西。既然我已经体验过为期两年的大学生活了,那么我就切身地写一些与选择大学,度过大学,以及与追求真正的人生有关的内容。

第一部分,选择大学。

大学只是一个平台而已。在固定的分数范围内,学校的所谓“水准”都差不多。因此,不要把大学本身看得太重。选择大学的第一要义,是看这个学校你是否喜欢,以及学校的“风格”和你是否“搭调”。第一要义必须始终摆在第一位,坚决不可让步妥协。

其次,选择专业要优先于选择大学。要优先考虑与你所向往的专业有关的大学,再在这些大学中筛选出将这一专业作为强势学科或重点学科的大学(学校介绍中“重视培养”这种鬼话是没有用的,一定要看所谓的国家学科排名或者实际成果,虽然本科生的“成果”在大部分情况下都是“垃圾”就是了……)。也就是说,要根据你向往的专业,选择某个绝对重视这一专业的学校。如此选择,虽然可能导致学校水平的降低,但是,这种专业在学校中得到的资源倾斜,是绝对不容小觑的。当然了,基于第一要义,把你不喜欢的大学“咔嚓”掉。

继续阅读 >>>

通过哈尔滨工程大学有线校园网的 IPv6 网络提升网速(绕过 IPv4 带宽限制)的方法 2018-04-20

补充于 2018-04-23
本文在ZJW同学于2018-03-11整理发布前,更早地由XYenon于2017-10-09发布于他的博客上,原文为《路由器转发 IPv6 配置方法》,采用 署名-非商业性使用-相同方式共享 3.0 中国大陆 协议许可,在此感谢原作者XYenon同学的无私奉献。


本文参考自ZJW同学发布的《通过校园网IPv6网络实现不限网络流量/网络加速的方法》,在此感谢ZJW同学对XYenon同学所著文章进行的补充和整理。本人在该文章的基础之上再次进行了适当整理,以小节的形式给出操作步骤,同时调整了一些步骤的顺序,使读者得以更清晰直观地理解各步骤的思路和意义。同时,本人对文章进行了完善和补充,增加了测试和优化部分,便于读者评估自己的 IPv6 路由性能。


前置声明

本方案并不能绕过校园网付费系统,仍然需要缴纳每月40元的昂贵上网费用。请欲绕过校园网付费系统的读者注意,本文也许无法为您提供任何帮助。
由于翻译原因,本文中提到的选项名称可能与你持有的路由器上的实际名称略有偏差,请自行对应。

硬件要求

  1. 带有 OpenWrt / LEDE / PandoraBox 系统的路由器,且通过有线校园网连接到 Internet(请自行解决刷机和联网过程),本文以 斐讯K2 的 PandoraBox 17.01 版本为例
  2. 支持 IPv6 的上网设备(请自行开启设备 IPv6 功能)

启用路由器的SSH连接功能

  1. 登录路由器管理页面(一般为 192.168.1.1),打开“系统-管理”页面。
  2. 在“SSH访问”部分中,将接口设为 LAN,端口设为 22,勾选“密码验证”及“Root权限登录”复选框,点击“保存&应用”按钮。

安装 IPv6 所需的必备组件

由于 PandoraBox 官方软件源已经关闭,因此我们首先需要将系统内置的软件源修改为尚存活的镜像源。对于 OpenWrt 和 LEDE 用户,建议参考此步骤的操作,将软件源修改为国内镜像源,以避免网络问题导致的无法下载或包损坏问题(镜像源请自行查找,推荐USTC反向代理)。




继续阅读 >>>

部署 Armbian 于 Orange Pi Win Plus 的相关记录 2018-03-28

  1. 修改apt为清华大学镜像源:
    修改/etc/apt/sources.list为以下内容:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse
  1. 使用dpkg -i安装软件包时出现依赖问题:
    先执行dpkg -i xxx.deb,在提示缺乏依赖关系后,依次执行sudo apt-get updatesudo apt-get -f install命令以解决依赖关系,再执行sudo dpkg -i xxx.deb重新安装。

  2. 启用中文环境及安装中文字体:
    Applications - Settings - Language Support中进行操作。

  3. 更换中文字体:
    系统提供的中文语言包的字体是楷体,在字号比较小的情况下瞅着异常抽象。可以使用如下命令安装文泉驿正黑点阵字体:
    sudo apt-get install ttf-wqy-zenhei

  4. 安装中文输入法:
    使用sudo apt-get install fcitx fcitx-tools fcitx-config-gtk2 fcitx-googlepinyin安装谷歌拼音输入法。
    (若使用官方中文语言包,fcitx会随语言包自动安装。)

  5. 安装 Python 的 pip 包管理
    安装 Python 2 的 pip 包管理:sudo apt-get install python-pip python-m2crypto
    将上述指令中的 python-pip 替换为 python3-pip 以安装 Python 3 的 pip 包管理。