Oct
25
过DOS的人对参数并不陌生,DOS下的很多程序都有参数,尽管是枯燥的英文字母,但功能却非常强大。Ghost是一个典型的支持参数的DOS程序,充分利用它的参数,我们可以更好地控制Ghost。让它们更好地为我们工作,前面几个例子,我们就使用了Ghost的参数做出了一张自动备份和恢复硬盘数据的自启动光盘。正是因为Ghost参数众多,功能强大,我们才有必要把一些最最常用的参数列出,供大家平时参考使用。
小提示
★参数(Parameter)是程序提供给我们一些隐藏选项,通过添加参数,可以实现正常启动程序无法实现或者能够实现,但需要很多步骤才能够实现的功能,可以给我们带来很多的方便。
★参数与程序、参数与参数之间用空格符分隔。
★我们可以把Ghost的参数写入到一些BAT文件中,并通过控制语句来用它更方便地克隆和恢复我们的系统。
1.磁盘对磁盘拷贝
图形界面: Disk To Disk
参数例子: ghost -clone,mode=copy,src=1,dst=2 -sure -fx
参数功能: 拷贝磁盘一的全部内容到磁盘二,不必询问,完成后退出Ghost。
2.把磁盘上的所有内容备份成映像文件
图形界面: Disk To Image
参数例子: ghost -clone,mode=dump,src=1,dst=d:\Win98sys.gho -z3 -sure -fx
参数功能: 备份机器第一块硬盘上的全部内容到另一台硬盘d:\Win98sys.gho文件中,高压缩,不必询问,完成后退出Ghost。
3.从备份的映像文件复原到磁盘
图形界面: Disk From Image
参数例子: ghost -clone,mode=load,src=d:\Win98sys.gho,dst=1 -sure -fx
参数功能: 从备份在另一块硬盘d:\Win98sys.gho的映像文件复原到第一块硬盘上,不必询问,完成后退出Ghost。
4.分区对分区拷贝
图形界面: Partition To Partition
参数例子: ghost -clone,mode=pcopy,src=1:1,dst=2:1 -sure -fx
参数功能: 拷贝第一块硬盘第一个分区上的所有内容到第二块硬盘的第一个分区上,不必询问,完成后退出Ghost。
5.把分区内容备份成映像文件
图形界面: Partition To Image
参数例子: ghost -clone,mode=pdump,src=1:1,dst=d:\Win98sys.gho -z9 -sure -fx
参数功能: 备份第一块硬盘第一分区到d:\Win98sys.gho,采用最高压缩率,不必询问,完成后退出Ghost。
6.从备份的映像文件克隆到分区
图形界面: Partition From Image
参数例子: ghost -clone,mode=pload,src=d:\Win98sys.gho:1,dst=1:1 -sure -fx
参数功能: 把d:\Win98sys.gho中的第一个分区内存克隆到第一块硬盘第一分区上,不必询问,完成后退出Ghost。
7.平行端口电缆线直接连接电脑客户机
图形界面: LPT/Slave
参数例子: ghost -lps
参数功能: 启动客户机 (两台电脑必须同时执行Ghost)。
8.平行端口电缆线直接连接服务机
图形界面: LPT/Master
参数例子: ghost -lpm -clone,mode=dump,src=1,dst=c:\Win98sys.gho -sure -fx
参数功能: 将服务机第一块硬盘上的内容备份到客户机c:\Win98sys.gho文件中,不必询问,完成后退出Ghost。
9.硬盘间直接克隆
参数例子:ghost -clone,mode=copy,src=1,dst=2 -sure
参数功能:在内部模式拷贝第一块硬盘到第二块硬盘,无需提示,直接克隆。
10.网络备份
参数例子:ghost -nbm -clone,mode=dump,src=2,dst=c:\xxxx.gho
参数功能:由NetBIOS模式连接到正在进行ghost\slave的网络远程个人电脑并备份本机第二块硬盘到远程硬盘C:\xxxx.gho成一映像压缩文件。
小提示
该远程客户机必须使用ghost -nbs命令来启动。
11.将映像文件克隆到硬盘
参数例子:ghost -clone,mode=load,src=e:\savdsk.gho,dst=1
参数功能:读入E:\SAVEDSK.gho文件,并把它克隆到第一块硬盘上。
12.将第二个分区备份为映像文件(还原)
参数例子:ghost -clone,mode=pdump,src=1:2,dst=g:\imgs\part2.gho
参数功能:备份第一块硬盘的第二分区到g:\imgs\part2.gho映像文件。
参数例子:ghost -clone,mode=pload,src=g:\imgs\part2.gho:2,dst=1:2
参数功能:载入(恢复)映像文件内的第二分区到内部硬盘第一块硬盘的第二分区。
13.不同硬盘不同分区复制
参数例子:ghost -clone,mode=pcopy,src=1:2,dst=2:1
参数功能:拷贝第一块硬盘的第二分区到第二块硬盘的第一分区。
14.还原到第二块硬盘并调整分区大小
参数例子:ghost -clone,mode=load,src=g:\imgs\2prtdisk.gho,dst=2,sze1=60P,sze2=40P
参数功能:克隆g:\imgs\2prtdisk.gho映像文件到第二块硬盘, 并重整按60%和40%大小分配分区大小。 15.还原到第一块硬盘并调整分区大小
参数例子:ghost -clone,mode=load,src=e:\imgs\3prtdisk.gho,dst=1,sze1=450M,sze2=1599M,sze3=2047M
参数功能:克隆e:\imgs\3prtdisk.gho映像文件到第一块硬盘, 并重整分区大小为: 第一分区450MB,第二分区1599MB,第三分区2047MB。
16.保留第一分区,其他不分配
参数例子:ghost -clone,mode=copy,src=1,dst=2,sze1=F,sze2=V,sze3=V
参数功能:拷贝有三个分区的第一块硬盘到第二块硬盘并保持第一分区与来源大小相同,但是其他分区所剩余空间保留不予分配。
17.还原到最后的分区并调整分区大小
参数例子:ghost -clone,mode=load,src=g:\imgs\2prtdisk.gho,dst=1,szeL
参数功能:载入映像文件到磁盘最后的分区并按照容量重整其大小,第一分区则利用剩余的空间。
18.从参数文件读取
参数例子:GHOST.EXE @(参数文件)
参数功能:GHOST命令行参数可从参数文件读取并执行(注意参数文件是文本格式的)。
小提示
参数文件中可以以文本格式编写包含任何Ghost命令行参数,除了-AFILE=和-DFILE= 参数外。
19.备份并自动分割
参数例子:ghost -sure -clone,mode=pdump,src=1:1,dst=system.gho -span -split=630
参数功能:它的作用是把第一块硬盘第一分区信息备份到当前文件夹下的system.gho中,如果生成的system.gho大于630MB,则会分割生成的GHO文件,这个参数在备份大的分区,并把它们烧录到650MB的CD-R上时非常有用。
20.备份并加密
参数例子:ghost -sure -pwd,666888 -clone,mode=pdump,src=1:1,dst=system.gho
参数功能:该语句的作用是把第一块硬盘第一分区信息备份到当前文件夹下的system.gho中,并且以666888作为生成后GHO文件的密码,以便加密。以后用Ghost恢复system.gho文件,或者用Ghost Explorer来释放其中的文件时,都必须输入密码,否则无法恢复或释放文件,从而起到了保密的作用。如果输入ghost -sure -pwd -clone,mode=pdump,src=1:1,dst=system.gho,即-pwd后面不带密码,则Ghost在制作GHO文件前会询问用户加密GHO的密码,你必须记牢。给GHO文件加密后,别人就无法随意查看或恢复我们的文件了。
小提示
★参数(Parameter)是程序提供给我们一些隐藏选项,通过添加参数,可以实现正常启动程序无法实现或者能够实现,但需要很多步骤才能够实现的功能,可以给我们带来很多的方便。
★参数与程序、参数与参数之间用空格符分隔。
★我们可以把Ghost的参数写入到一些BAT文件中,并通过控制语句来用它更方便地克隆和恢复我们的系统。
1.磁盘对磁盘拷贝
图形界面: Disk To Disk
参数例子: ghost -clone,mode=copy,src=1,dst=2 -sure -fx
参数功能: 拷贝磁盘一的全部内容到磁盘二,不必询问,完成后退出Ghost。
2.把磁盘上的所有内容备份成映像文件
图形界面: Disk To Image
参数例子: ghost -clone,mode=dump,src=1,dst=d:\Win98sys.gho -z3 -sure -fx
参数功能: 备份机器第一块硬盘上的全部内容到另一台硬盘d:\Win98sys.gho文件中,高压缩,不必询问,完成后退出Ghost。
3.从备份的映像文件复原到磁盘
图形界面: Disk From Image
参数例子: ghost -clone,mode=load,src=d:\Win98sys.gho,dst=1 -sure -fx
参数功能: 从备份在另一块硬盘d:\Win98sys.gho的映像文件复原到第一块硬盘上,不必询问,完成后退出Ghost。
4.分区对分区拷贝
图形界面: Partition To Partition
参数例子: ghost -clone,mode=pcopy,src=1:1,dst=2:1 -sure -fx
参数功能: 拷贝第一块硬盘第一个分区上的所有内容到第二块硬盘的第一个分区上,不必询问,完成后退出Ghost。
5.把分区内容备份成映像文件
图形界面: Partition To Image
参数例子: ghost -clone,mode=pdump,src=1:1,dst=d:\Win98sys.gho -z9 -sure -fx
参数功能: 备份第一块硬盘第一分区到d:\Win98sys.gho,采用最高压缩率,不必询问,完成后退出Ghost。
6.从备份的映像文件克隆到分区
图形界面: Partition From Image
参数例子: ghost -clone,mode=pload,src=d:\Win98sys.gho:1,dst=1:1 -sure -fx
参数功能: 把d:\Win98sys.gho中的第一个分区内存克隆到第一块硬盘第一分区上,不必询问,完成后退出Ghost。
7.平行端口电缆线直接连接电脑客户机
图形界面: LPT/Slave
参数例子: ghost -lps
参数功能: 启动客户机 (两台电脑必须同时执行Ghost)。
8.平行端口电缆线直接连接服务机
图形界面: LPT/Master
参数例子: ghost -lpm -clone,mode=dump,src=1,dst=c:\Win98sys.gho -sure -fx
参数功能: 将服务机第一块硬盘上的内容备份到客户机c:\Win98sys.gho文件中,不必询问,完成后退出Ghost。
9.硬盘间直接克隆
参数例子:ghost -clone,mode=copy,src=1,dst=2 -sure
参数功能:在内部模式拷贝第一块硬盘到第二块硬盘,无需提示,直接克隆。
10.网络备份
参数例子:ghost -nbm -clone,mode=dump,src=2,dst=c:\xxxx.gho
参数功能:由NetBIOS模式连接到正在进行ghost\slave的网络远程个人电脑并备份本机第二块硬盘到远程硬盘C:\xxxx.gho成一映像压缩文件。
小提示
该远程客户机必须使用ghost -nbs命令来启动。
11.将映像文件克隆到硬盘
参数例子:ghost -clone,mode=load,src=e:\savdsk.gho,dst=1
参数功能:读入E:\SAVEDSK.gho文件,并把它克隆到第一块硬盘上。
12.将第二个分区备份为映像文件(还原)
参数例子:ghost -clone,mode=pdump,src=1:2,dst=g:\imgs\part2.gho
参数功能:备份第一块硬盘的第二分区到g:\imgs\part2.gho映像文件。
参数例子:ghost -clone,mode=pload,src=g:\imgs\part2.gho:2,dst=1:2
参数功能:载入(恢复)映像文件内的第二分区到内部硬盘第一块硬盘的第二分区。
13.不同硬盘不同分区复制
参数例子:ghost -clone,mode=pcopy,src=1:2,dst=2:1
参数功能:拷贝第一块硬盘的第二分区到第二块硬盘的第一分区。
14.还原到第二块硬盘并调整分区大小
参数例子:ghost -clone,mode=load,src=g:\imgs\2prtdisk.gho,dst=2,sze1=60P,sze2=40P
参数功能:克隆g:\imgs\2prtdisk.gho映像文件到第二块硬盘, 并重整按60%和40%大小分配分区大小。 15.还原到第一块硬盘并调整分区大小
参数例子:ghost -clone,mode=load,src=e:\imgs\3prtdisk.gho,dst=1,sze1=450M,sze2=1599M,sze3=2047M
参数功能:克隆e:\imgs\3prtdisk.gho映像文件到第一块硬盘, 并重整分区大小为: 第一分区450MB,第二分区1599MB,第三分区2047MB。
16.保留第一分区,其他不分配
参数例子:ghost -clone,mode=copy,src=1,dst=2,sze1=F,sze2=V,sze3=V
参数功能:拷贝有三个分区的第一块硬盘到第二块硬盘并保持第一分区与来源大小相同,但是其他分区所剩余空间保留不予分配。
17.还原到最后的分区并调整分区大小
参数例子:ghost -clone,mode=load,src=g:\imgs\2prtdisk.gho,dst=1,szeL
参数功能:载入映像文件到磁盘最后的分区并按照容量重整其大小,第一分区则利用剩余的空间。
18.从参数文件读取
参数例子:GHOST.EXE @(参数文件)
参数功能:GHOST命令行参数可从参数文件读取并执行(注意参数文件是文本格式的)。
小提示
参数文件中可以以文本格式编写包含任何Ghost命令行参数,除了-AFILE=和-DFILE= 参数外。
19.备份并自动分割
参数例子:ghost -sure -clone,mode=pdump,src=1:1,dst=system.gho -span -split=630
参数功能:它的作用是把第一块硬盘第一分区信息备份到当前文件夹下的system.gho中,如果生成的system.gho大于630MB,则会分割生成的GHO文件,这个参数在备份大的分区,并把它们烧录到650MB的CD-R上时非常有用。
20.备份并加密
参数例子:ghost -sure -pwd,666888 -clone,mode=pdump,src=1:1,dst=system.gho
参数功能:该语句的作用是把第一块硬盘第一分区信息备份到当前文件夹下的system.gho中,并且以666888作为生成后GHO文件的密码,以便加密。以后用Ghost恢复system.gho文件,或者用Ghost Explorer来释放其中的文件时,都必须输入密码,否则无法恢复或释放文件,从而起到了保密的作用。如果输入ghost -sure -pwd -clone,mode=pdump,src=1:1,dst=system.gho,即-pwd后面不带密码,则Ghost在制作GHO文件前会询问用户加密GHO的密码,你必须记牢。给GHO文件加密后,别人就无法随意查看或恢复我们的文件了。
Oct
24
前言:我也是刚刚接触DEBIAN的菜鸟,经过昨天安装数遍的系统,经过昨天的跌打滚爬,终于用了8-9
个小时的时间配置好了系统,为了让以后方面,所以我今天又再一次的安装配置了它,又随笔些下了这篇手记,希望下次能够按照它能够很快的配置好一个系统。我
贴出自己的笔记的原因就是希望大家少走弯路,能尽快的进入DEBIAN的美好世界。希望各位高手能够补充我的不足的地方,也欢迎跟我交流,我的QQ:
545121
安装ubunt以后需要apt-get很多东西,所以你得需要一个很好的网络环境才能完成下面的工作。
1。首先安装系统 OK
2。更改软件包源。修改/etc/apt/sources.list 文件,使用sudo gedit命令。
终端命令:
$:sudo gedit /etc/apt/sources.list
删除原有文本中的软件源,再添加:
deb http://cn.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu breezy-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu breezy-security main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu warty main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu warty-security main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu warty-updates main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu hoary main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu hoary-security main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu hoary-updates main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu breezy main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu breezy-security main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu breezy-updates main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu-cn ubuntu.org.cn main universe multiverse restricted
deb http://archive.ubuntu.org.cn/backports hoary-backports main universe multiverse restricted
deb http://archive.ubuntu.org.cn/backports hoary-extras main universe multiverse restricted
保存文本。
$:sudo apt-get update
$:sudo apt-get dist-upgrade
3。装好系统以后,输入默认是没有的。必须更新下载安装包。使用sudo apt-get命令下载输入法。
终端命令:
$:sudo apt-get install scim scim-gtk2-immodule scim-modules-socket scim-modules-table scim-pinyin scim-tables-zh scim-input-pad
$:sudo sh -c " echo 'export XMODIFIERS=@im=SCIM ; export GTK_IM_MODULE="scim" ; scim -d ' > /etc/X11/Xsession.d/95xinput "
$:sudo chmod +755 /etc/X11/Xsession.d/95xinput
输入法安装好以后,注销系统,然后再登录,就可以使用CTRL+空格键切换输入法了。
4。挂载WINDOWS分区,使用相关命令mount挂载,使用umount命令卸载。
先卸载原先系统默认挂载的WIN分区,因为默认挂载存在错误,需要修改,但是在修改之前,必须先卸载。
卸载WIN分区的终端命令:
$:sudo umount /media/hda1
$:sudo umount /media/hda5
$:sudo umount /media/hda6
然后修改/etc/fstab文件,使用上面提到的sudo命令。
$:sudo gedit /etc/fstab
删除错误的挂载命令,也就是那个/dev/hda1,/dev/hda5/,/dev/hda6的3条命令。
添加如下正确的命令:
/dev/hda1 /media/hda1 ntfs utf8,umask=000 0 0
/dev/hda5 /media/hda5 ntfs utf8,umask=000 0 0
/dev/hda6 /media/hda6 vfat utf8,umask=000 0 0
保存这个文本。然后使用重新自动挂载命令来挂载我们新建立挂载。
$:sudo mount -a
成功挂载以后,我们可以看到桌面上已经有正确的挂载了,我们可以尝试进入这三个目录。^-^,可以了吧?
5。修改系统字体,使系统显示字体完美。我们需要WINDOWS下的商业字体。simsun.ttf和SimSun-Bold.ttf。
复制这两个字体到我们的字体文件夹里,使用CP命令。如下:
$:sudo cp /tmp/simsun.ttf /usr/share/fonts/truetype/freefont/
$:sudo cp /tmp/SimSun-Bold.ttf /usr/share/fonts/truetype/freefont/
然后使用 系统-首选项-字体 更改字体,关闭。
更改浏览器字体 编辑-首选项-字体 更改字体,关闭。
更本文件编辑器 编辑-首选项-字体 更改字体,关闭。
重起系统,再次登录,系统字体好看多了。
6。安装LumaQQ,到网站http://lumaqq.linuxsir.org/main/?q=node/231下载适合的QQ版本。我选择LumaQQ 2004T 初始安装包,带JER的,解压就能使用。
点击下载,然后使用tar zxvf命令解压缩文件,命令如下:
$:sudo tar zxvf lumaqq_2004t-linux_gtk2_x86_with_jre.tar.gz -C /opt/
$:sudo unzip -o lumaqq_2004t_patch_2005.09.05.23.00.zip -d /opt/LumaQQ/lib
$:sudo chown -R root:root /opt/LumaQQ/
$:sudo chmod -R 755 /opt/LumaQQ/
$:sudo gedit /usr/share/applications/LumaQQ.desktop
在新增的文件内加入下面这几行
[Desktop Entry]
Name=LumaQQ
Comment=QQ Client
Exec=/opt/LumaQQ/lumaqq
Icon=/opt/LumaQQ/QQ.png
Terminal=false
Type=Application
Categories=Application;Network;
保存编辑过的文件
7。更改刷新率,首先备份你的配置 xorg.conf:
$:sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf_backup
$:sudo gedit /etc/X11/xorg.conf
然后查找Section "Monitor",然后后把下面的几列改为如下:
Section "Monitor"
Identifier "Generic Monitor"
HorizSync 31-101
VertRefresh 60-160
EndSection
重起系统,就能使用85的刷新率了。
8。安装xine多媒体播放器,使用如下命令:
$:sudo apt-get install xine-ui
指定 xine-ui 播放多媒体文件
$:gconftool-2 --type string --set /desktop/gnome/volume_manager/autoplay_dvd_command "xine dvd://"
$:sudo rm -f /usr/share/applnk/Multimedia/xine.desktop
$:sudo ln -fs /usr/share/xine/desktop/xine.desktop /usr/share/applications/
$:sudo cp /usr/share/applications/defaults.list /usr/share/applications/defaults.list_backup
$:sudo sed -e 's/totem.desktop/xine.desktop/g' /usr/share/applications/defaults.list_backup > /tmp/defaults.list
$:sudo mv /tmp/defaults.list /usr/share/applications/defaults.list
安装多媒体解码/编码器
$:sudo apt-get install gstreamer0.8-plugins
$:sudo apt-get install gstreamer0.8-lame
$:sudo apt-get install gstreamer0.8-ffmpeg
$:sudo apt-get install w32codecs
$:sudo apt-get install libdivx4linux
$:sudo apt-get install lame
$:sudo apt-get install sox
$:sudo apt-get install ffmpeg
$:sudo apt-get install mjpegtools
$:sudo apt-get install vorbis-tools
$:gst-register-0.8
9。需要安装的几个必要的包以后,换张桌面壁纸吧,这样会更加好看!
个小时的时间配置好了系统,为了让以后方面,所以我今天又再一次的安装配置了它,又随笔些下了这篇手记,希望下次能够按照它能够很快的配置好一个系统。我
贴出自己的笔记的原因就是希望大家少走弯路,能尽快的进入DEBIAN的美好世界。希望各位高手能够补充我的不足的地方,也欢迎跟我交流,我的QQ:
545121
安装ubunt以后需要apt-get很多东西,所以你得需要一个很好的网络环境才能完成下面的工作。
1。首先安装系统 OK
2。更改软件包源。修改/etc/apt/sources.list 文件,使用sudo gedit命令。
终端命令:
$:sudo gedit /etc/apt/sources.list
删除原有文本中的软件源,再添加:
deb http://cn.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu breezy-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu breezy-security main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu warty main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu warty-security main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu warty-updates main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu hoary main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu hoary-security main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu hoary-updates main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu breezy main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu breezy-security main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu breezy-updates main restricted universe multiverse
deb http://archive.ubuntu.org.cn/ubuntu-cn ubuntu.org.cn main universe multiverse restricted
deb http://archive.ubuntu.org.cn/backports hoary-backports main universe multiverse restricted
deb http://archive.ubuntu.org.cn/backports hoary-extras main universe multiverse restricted
保存文本。
$:sudo apt-get update
$:sudo apt-get dist-upgrade
3。装好系统以后,输入默认是没有的。必须更新下载安装包。使用sudo apt-get命令下载输入法。
终端命令:
$:sudo apt-get install scim scim-gtk2-immodule scim-modules-socket scim-modules-table scim-pinyin scim-tables-zh scim-input-pad
$:sudo sh -c " echo 'export XMODIFIERS=@im=SCIM ; export GTK_IM_MODULE="scim" ; scim -d ' > /etc/X11/Xsession.d/95xinput "
$:sudo chmod +755 /etc/X11/Xsession.d/95xinput
输入法安装好以后,注销系统,然后再登录,就可以使用CTRL+空格键切换输入法了。
4。挂载WINDOWS分区,使用相关命令mount挂载,使用umount命令卸载。
先卸载原先系统默认挂载的WIN分区,因为默认挂载存在错误,需要修改,但是在修改之前,必须先卸载。
卸载WIN分区的终端命令:
$:sudo umount /media/hda1
$:sudo umount /media/hda5
$:sudo umount /media/hda6
然后修改/etc/fstab文件,使用上面提到的sudo命令。
$:sudo gedit /etc/fstab
删除错误的挂载命令,也就是那个/dev/hda1,/dev/hda5/,/dev/hda6的3条命令。
添加如下正确的命令:
/dev/hda1 /media/hda1 ntfs utf8,umask=000 0 0
/dev/hda5 /media/hda5 ntfs utf8,umask=000 0 0
/dev/hda6 /media/hda6 vfat utf8,umask=000 0 0
保存这个文本。然后使用重新自动挂载命令来挂载我们新建立挂载。
$:sudo mount -a
成功挂载以后,我们可以看到桌面上已经有正确的挂载了,我们可以尝试进入这三个目录。^-^,可以了吧?
5。修改系统字体,使系统显示字体完美。我们需要WINDOWS下的商业字体。simsun.ttf和SimSun-Bold.ttf。
复制这两个字体到我们的字体文件夹里,使用CP命令。如下:
$:sudo cp /tmp/simsun.ttf /usr/share/fonts/truetype/freefont/
$:sudo cp /tmp/SimSun-Bold.ttf /usr/share/fonts/truetype/freefont/
然后使用 系统-首选项-字体 更改字体,关闭。
更改浏览器字体 编辑-首选项-字体 更改字体,关闭。
更本文件编辑器 编辑-首选项-字体 更改字体,关闭。
重起系统,再次登录,系统字体好看多了。
6。安装LumaQQ,到网站http://lumaqq.linuxsir.org/main/?q=node/231下载适合的QQ版本。我选择LumaQQ 2004T 初始安装包,带JER的,解压就能使用。
点击下载,然后使用tar zxvf命令解压缩文件,命令如下:
$:sudo tar zxvf lumaqq_2004t-linux_gtk2_x86_with_jre.tar.gz -C /opt/
$:sudo unzip -o lumaqq_2004t_patch_2005.09.05.23.00.zip -d /opt/LumaQQ/lib
$:sudo chown -R root:root /opt/LumaQQ/
$:sudo chmod -R 755 /opt/LumaQQ/
$:sudo gedit /usr/share/applications/LumaQQ.desktop
在新增的文件内加入下面这几行
[Desktop Entry]
Name=LumaQQ
Comment=QQ Client
Exec=/opt/LumaQQ/lumaqq
Icon=/opt/LumaQQ/QQ.png
Terminal=false
Type=Application
Categories=Application;Network;
保存编辑过的文件
7。更改刷新率,首先备份你的配置 xorg.conf:
$:sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf_backup
$:sudo gedit /etc/X11/xorg.conf
然后查找Section "Monitor",然后后把下面的几列改为如下:
Section "Monitor"
Identifier "Generic Monitor"
HorizSync 31-101
VertRefresh 60-160
EndSection
重起系统,就能使用85的刷新率了。
8。安装xine多媒体播放器,使用如下命令:
$:sudo apt-get install xine-ui
指定 xine-ui 播放多媒体文件
$:gconftool-2 --type string --set /desktop/gnome/volume_manager/autoplay_dvd_command "xine dvd://"
$:sudo rm -f /usr/share/applnk/Multimedia/xine.desktop
$:sudo ln -fs /usr/share/xine/desktop/xine.desktop /usr/share/applications/
$:sudo cp /usr/share/applications/defaults.list /usr/share/applications/defaults.list_backup
$:sudo sed -e 's/totem.desktop/xine.desktop/g' /usr/share/applications/defaults.list_backup > /tmp/defaults.list
$:sudo mv /tmp/defaults.list /usr/share/applications/defaults.list
安装多媒体解码/编码器
$:sudo apt-get install gstreamer0.8-plugins
$:sudo apt-get install gstreamer0.8-lame
$:sudo apt-get install gstreamer0.8-ffmpeg
$:sudo apt-get install w32codecs
$:sudo apt-get install libdivx4linux
$:sudo apt-get install lame
$:sudo apt-get install sox
$:sudo apt-get install ffmpeg
$:sudo apt-get install mjpegtools
$:sudo apt-get install vorbis-tools
$:gst-register-0.8
9。需要安装的几个必要的包以后,换张桌面壁纸吧,这样会更加好看!
Oct
10
平时对于数字与数字的判断,我是用==为判断,但是对于字符串与0的时候却不能这要,
有一些时候提交的数据有可能是字符串和数字两种,我今日遇到的问题就是这样了
关于根据论坛的等级来判断来给一个有效数值
function getdb($groupid)
{
if($groupid==0){
$var=100;
}
elseif($groupid==1){
$var=200;
}
elseif($groupid=='admin'){
$var=300;
}
else $var=0;
return $var;
}
如果传过来的$groupid是数字的话当然没问题
但如果当我传过来的为admin时,返回的却是100
即把$groupid等于0为看了。
后来在手册中查到
表格 O-2. 用 == 进行松散比较
| TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" |
---|---|---|---|---|---|---|---|---|---|---|---|
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE |
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE |
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE |
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE |
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE |
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE |
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE |
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE |
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE |
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE |
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE |
其中字符串与0比较时会返回真值
Oct
8
Mysql4.1.10初级解读
※※※※※※※※※※※※※※Mysql 初级解读 (所用版本:4.1.10)※※※※※※※※※※※※※※
安装注意事项
在安装的过程中,请记好您的密码,这是将来登录mysql的钥匙。
=======================无==敌==分==割==线=======================
一、Mysql数据库服务器登录
登录mysql需要切换到dos下的mysql的bin目录,进行如下操作:
语法格式:mysql -h host_name -u user_name -p password (本机的话-h 和host_name可省)
----------------------我------------割--------------------------
My Experience:
C:\program files\mysql\mysql server 4.1\bin>mysql -u root -p
Enter password:******
先输入用户名和密码登陆要求(加上-p),回车后等出现"Enter password:",再输入密码回车,这样就可以
成功登陆mysql,否则将会登陆失败。
----------------------我------------割--------------------------
登陆成功后会显示如下信息:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.10-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
标识"mysql>",当你看到这个出现在窗口的最左边的顶格时,这就是告诉你,你可以输入命令进行操作了。
mysql> \s 查看版本信息
mysql> \q or mysql> quit 退出mysql数据库服务器
mysql> \h or mysql> help 查看帮助(其他的数据库服务器相关命令)
=======================无==敌==分==割==线=======================
二、数据库操作
所要注意的是,所有举例的显示结果,均为下面操作步骤按顺序进行的结果。
----------------------我------------割--------------------------
2.1 查询语句
2.1.1 查看Mysql数据库的版本号和服务器的当前日期
mysql> select version(),current_date; (操作方式一)
mysql> select version()
-> ,current_date; (操作方式二)
※:操作语句间用","隔开,用";"来表示操作结束,操作语句输入过程中,换行不影响操作过程。
2.1.2 查看服务器中的所有数据库
mysql> show databases;
----------------------我------------割--------------------------
2.2 创建数据库
2.2.1 创建数据库(当然,数据库名"asb"不能是已经存在的)
mysql> create database asb;
2.2.2 选用数据库,使其成为当前操作的数据库
mysql> use asb;
成功选中后会有如下显示:
Database changed
甚至可以在窗口命令登陆mysql数据库的时候直接选中要操作的数据库(当然前提是asb数据库存在)
bin>mysql asb -u uesername -p
Enter password:******
2.2.3 查看当前所操作的数据库名称
mysql> select database();
运行后结果如下:
+------------+
| database() |
+------------+
| asb |
+------------+
1 row in set (0.00 sec)
----------------------我------------割--------------------------
2.3 创建表
2.3.1 用"create table"创建表(确认是要在当前数据库中创建,不是的话就先用'use'选中要创建表的那个数据库)
mysql> create table emp(emp_id varchar(6)
-> ,emp_name varchar(10)
-> ,emp_age int
-> ,emp-sal int
-> ,emp_bir date
-> ,emp_sex varchar(5)
-> );
2.3.2 查看当前数据库中的表(可以检验上例的"emp"表是否成功建立)
mysql> show tables;
如果是成功将是如下显示:
+---------------+
| Tables_in_asb |
+---------------+
| emp |
+---------------+
1 row in set (0.00 sec)
2.3.3 查看数据表的结构
mysql> describe emp;
运行后结果会如如下显示:
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| emp_id | varchar(6) | YES | | NULL | |
| emp_name | varchar(10) | YES | | NULL | |
| emp_age | int(11) | YES | | NULL | |
| emp_sal | int(11) | YES | | NULL | |
| emp_bir | date | YES | | NULL | |
| emp_sex | varchar(5) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
----------------------我------------割--------------------------
2.4 插入数据
2.4.1 使用INSERT语句进行插入记录操作(数据库表中每一行就是一个记录,插入记录实际上就是向表中插入一行)
格式:INSERT INTO table_name(数据表名) VALUES(值1,值2,值3...);
在VALUES关键字后括号中的数值和字符段,必须和你所建的表所定义的字段数据类型必须一致!
mysql> insert into emp values
-> ('100005','啸天',27,3000,'1979-07-10','male');
插入成功后会有如下信息显示:
Query OK, 1 row affected (0.03 sec)
2.4.2 查看表中的数据(可以确定数据是否已经成功插入)
mysql> select * from emp;
成功插入后的数据显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 3000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
一次性插入多行的格式:INSERT INTO table_name(数据表名) VALUES(值1,值2,值3...),(值1,值2,值3...);
mysql> insert into emp values
-> ('100001','红枫',29,8000,'1977-01-01','male'),
-> ('100002','丽鹃',27,7000,'1979-12-31','fmale');
可以查看插入后的数据结果:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 3000 | 1979-07-10 | male |
| 100004 | 红枫 | 29 | 8000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 7000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
----------------------我------------割--------------------------
2.5 修改数据
2.5.1 使用UPDATE语句来更新表中的数据
mysql> update emp set emp_id=100001 where emp_name='红枫';
修改结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 3000 | 1979-07-10 | male |
| 100001 | 红枫 | 29 | 8000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 7000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
如果该语句没有后面的where限制,将会对表中所有的记录都进行修改。
如,给全部人加薪1000,可以如下修改:
mysql> update emp set emp_sal=emp_sal+1000;
修改结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
----------------------我------------割--------------------------
2.6 高级查询方法
2.6.1 记录查询
查询emp表中,emp_name为啸天的全部信息
mysql> select * from emp where emp_name='啸天';
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
查询emp表中,emp_sal,工资在5000以上的全部信息
mysql> select * from emp where emp_sal>5000;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.00 sec)
查询emp表中在1978年1月1日之后出生的
mysql> select * from emp where emp_bir>'1978-01-01';
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.00 sec)
查询emp表中在1979年12月1日之前出生,工资在5000以上的
mysql> select * from emp where emp_bir<'1979-12-01' and emp_sal>5000;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
2.6.2 字段查询
CEO查看员工工资情况
mysql> select emp_name,emp_sal from emp;
查询结果显示如下:
+----------+---------+
| emp_name | emp_sal |
+----------+---------+
| 啸天 | 4000 |
| 红枫 | 9000 |
| 丽鹃 | 8000 |
+----------+---------+
3 rows in set (0.00 sec)
查看1978年后出生的人的姓名、工资和性别
mysql> select emp_name,emp_sal,emp_sex from emp where emp_bir>"1977-12-31";
查询结果显示如下:
+----------+---------+---------+
| emp_name | emp_sal | emp_sex |
+----------+---------+---------+
| 啸天 | 4000 | male |
| 丽鹃 | 8000 | fmale |
+----------+---------+---------+
2 rows in set (0.00 sec)
2.6.3 查询结果排序
用ORDER BY语句对emp表中所有员工工资高低顺序查询结果(默认是从低到高——升序)
mysql> select * from emp order by emp_sal;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
用DESC关键字来进行从高到低排序——降序
mysql> select * from emp order by emp_sal desc;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
2.6.4 查询结果数量的限制
用LIMIT查看emp表中工资收入排名前两个员工的资料:
mysql> select * from emp order by emp_sal desc limit 2;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.00 sec)
查看工资排名第2到第3的员工资料:
mysql> select * from emp order by emp_sal desc limit 1,2;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.01 sec)
使用rand()抽样调查,随机抽取2个员工,查看其资料
mysql> select * from emp order by rand() limit 2;
如如下结果:(随机的)
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.01 sec)
2.6.5 查询结果的字段联合和重新命名
mysql> select concat(emp_id," ",emp_name) from emp;
查询结果:
+------------------------------+
| concat(emp_id," ",emp_name) |
+------------------------------+
| 100005 啸天 |
| 100001 红枫 |
| 100002 丽鹃 |
+------------------------------+
3 rows in set (0.00 sec)
用AS关键字重新给输出结果命名标题
mysql> select concat(emp_id," ",emp_name) as info from emp;
查询结果如下显示:
+----------------+
| info |
+----------------+
| 100005 啸天 |
| 100001 红枫 |
| 100002 丽鹃 |
+----------------+
3 rows in set (0.00 sec)
2.6.6 日期查询的相关运算
可以通过YEAR()、MONTH()、DAYOFMONTH()函数来提取日期的组成元素
查询7月份出生的员工资料:
mysql> select * from emp where month(emp_bir)=7;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
可以利用英文月份来查询:
mysql> select * from emp where monthname(emp_bir)="January";
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
利用TO_DAYS()函数可以查询出职工们从出生到现在所经理的时间,单位是天数
mysql> select to_days(current_date) - to_days(emp_bir) as livingdays from emp;
查询后结果如下:
+------------+
| livingdays |
+------------+
| 9425 |
| 10345 |
| 9251 |
+------------+
3 rows in set (0.00 sec)
计算从现在开始经历100天后的日期
mysql> select date_add(now(),interval 100 day);
查询结果如下:
+----------------------------------+
| date_add(now(),interval 100 day) |
+----------------------------------+
| 2005-08-07 13:56:58 |
+----------------------------------+
1 row in set (0.00 sec)
计算从现在开始经历100天后的日期
mysql> select date_sub(now(),interval 100 day);
查询结果如下:
+----------------------------------+
| date_sub(now(),interval 100 day) |
+----------------------------------+
| 2005-01-19 14:00:20 |
+----------------------------------+
1 row in set (0.00 sec)
2.6.7 数据统计
使用COUNT()函数计算表中的数据数目(比如emp表中的员工数目)
mysql> select count(*) from emp;
查询结果如下:
+----------+
| count(*) |
+----------+
| 3 |
+----------+
1 row in set (0.01 sec)
统计工资上5000的数目
mysql> select count(*) from emp where emp_sal>5000;
查询结果如下:
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (0.00 sec)
统计男女职工数目:(GROUP BY语句分类)
mysql> select emp_sex,count(*) from emp group by emp_sex;
查询结果如下:
+---------+----------+
| emp_sex | count(*) |
+---------+----------+
| fmale | 1 |
| male | 2 |
+---------+----------+
2 rows in set (0.01 sec)
使用数据统计函数(MIN(),MAX(),SUM(),AVG())
mysql> select
-> min(emp_sal) as min_salary,
-> max(emp_sal) as max_salary,
-> sum(emp_sal) as sum_salary,
-> avg(emp_sal) as avg_salary,
-> count(*) as employee_num
-> from emp;
查询结果如下:
+------------+------------+------------+------------+--------------+
| min_salary | max_salary | sum_salary | avg_salary | employee_num |
+------------+------------+------------+------------+--------------+
| 4000 | 9000 | 21000 | 7000.0000 | 3 |
+------------+------------+------------+------------+--------------+
1 row in set (0.00 sec)
2.6.8 从多个数据表中检索信息
根据前面的方法,分别进行如下操作:
1). 在数据库asb中建立一个新表dept,表中有两项元素:
dept_id --> varchar(6)
dept_name --> varchar(10)
2). 在表emp中插入如下一行新记录:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100003 | 小红 | 30 | 8000 | 1976-11-11 | fmale |
+--------+----------+---------+---------+------------+---------+
3). 在新表dept中,输入如下记录
+---------+-----------+
| dept_id | dept_name |
+---------+-----------+
| 100005 | MTD |
| 100001 | MTD |
| 100002 | MTD |
| 100003 | HR |
+---------+-----------+
查询emp和dept这两个表中,员工的姓名和部门信息
mysql> select emp.emp_name,dept.dept_name from emp,dept
-> where emp.emp_id=dept.dept_id;
查询结果如下:
+----------+-----------+
| emp_name | dept_name |
+----------+-----------+
| 啸天 | MTD |
| 红枫 | MTD |
| 丽鹃 | MTD |
| 小红 | HR |
+----------+-----------+
4 rows in set (0.00 sec)
多表查询时注意:
1). FROM子句必须给出所查询的表的全部名称
2). 选择字段时候注明其所属表的名称(如emp表中的emp_id要表示为emp.emp_id)
3). 在Where子句中必须指明查询的条件(如,emp.emp_id和dept.dept_id是相同意义的元素)
----------------------我------------割--------------------------
2.7 删除表单数据
2.7.1 使用DELETE语句删除表单中的数据记录
小红不在了哦,得删了吧
mysql>delete from emp where emp_name='小红';
执行成功后会如下显示:
Query OK, 1 row affected (0.06 sec)
省略where是删除全部表中的记录
2.7.2 使用DRO删除表
(先随便建立一个数据库dt,并建张临时表fuck)
mysql>drop table fuck;
2.7.3 使用DRO删除数据库
mysql>drop database dt;
----------------------我------------割--------------------------
2.8 改变数据表的结构
先建立一个新表id (内带一个属性id_name varchar(6)),输入一行数据(xgw)
2.8.1 对表重新命名
alter table 数据表名 rename as 数据表的新名字;
把表id改名成name
mysql> alter table id rename as name;
2.8.2 给数据表增加一个字段
alter table 数据表名 add 字段名称 字段类型;
在改过名的新表name中增加一个字段(id int(6))
mysql>alter table name add id int(6);
增加成功后有如下显示:
Query OK, 1 row affected (0.26 sec)
Records: 1 Duplicates: 0 Warnings: 0
2.8.3 更改已经建立的字段类型
alter table 数据表名 modify 字段名称 字段类型;
把name表中id属性的类型改成10个长度的字符类型
mysql> alter table name modify id varchar(10);
alter talbe语句还有很多功能,具体可查阅MySQL的技术手册。
(the questions,call me anytime! E-mail:tt981@netease.com)
※※※※※※※※※※※※※※Mysql 初级解读 (所用版本:4.1.10)※※※※※※※※※※※※※※
CopyRight By FengLin , 2005-4-29
※※※※※※※※※※※※※※Mysql 初级解读 (所用版本:4.1.10)※※※※※※※※※※※※※※
安装注意事项
在安装的过程中,请记好您的密码,这是将来登录mysql的钥匙。
=======================无==敌==分==割==线=======================
一、Mysql数据库服务器登录
登录mysql需要切换到dos下的mysql的bin目录,进行如下操作:
语法格式:mysql -h host_name -u user_name -p password (本机的话-h 和host_name可省)
----------------------我------------割--------------------------
My Experience:
C:\program files\mysql\mysql server 4.1\bin>mysql -u root -p
Enter password:******
先输入用户名和密码登陆要求(加上-p),回车后等出现"Enter password:",再输入密码回车,这样就可以
成功登陆mysql,否则将会登陆失败。
----------------------我------------割--------------------------
登陆成功后会显示如下信息:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.10-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
标识"mysql>",当你看到这个出现在窗口的最左边的顶格时,这就是告诉你,你可以输入命令进行操作了。
mysql> \s 查看版本信息
mysql> \q or mysql> quit 退出mysql数据库服务器
mysql> \h or mysql> help 查看帮助(其他的数据库服务器相关命令)
=======================无==敌==分==割==线=======================
二、数据库操作
所要注意的是,所有举例的显示结果,均为下面操作步骤按顺序进行的结果。
----------------------我------------割--------------------------
2.1 查询语句
2.1.1 查看Mysql数据库的版本号和服务器的当前日期
mysql> select version(),current_date; (操作方式一)
mysql> select version()
-> ,current_date; (操作方式二)
※:操作语句间用","隔开,用";"来表示操作结束,操作语句输入过程中,换行不影响操作过程。
2.1.2 查看服务器中的所有数据库
mysql> show databases;
----------------------我------------割--------------------------
2.2 创建数据库
2.2.1 创建数据库(当然,数据库名"asb"不能是已经存在的)
mysql> create database asb;
2.2.2 选用数据库,使其成为当前操作的数据库
mysql> use asb;
成功选中后会有如下显示:
Database changed
甚至可以在窗口命令登陆mysql数据库的时候直接选中要操作的数据库(当然前提是asb数据库存在)
bin>mysql asb -u uesername -p
Enter password:******
2.2.3 查看当前所操作的数据库名称
mysql> select database();
运行后结果如下:
+------------+
| database() |
+------------+
| asb |
+------------+
1 row in set (0.00 sec)
----------------------我------------割--------------------------
2.3 创建表
2.3.1 用"create table"创建表(确认是要在当前数据库中创建,不是的话就先用'use'选中要创建表的那个数据库)
mysql> create table emp(emp_id varchar(6)
-> ,emp_name varchar(10)
-> ,emp_age int
-> ,emp-sal int
-> ,emp_bir date
-> ,emp_sex varchar(5)
-> );
2.3.2 查看当前数据库中的表(可以检验上例的"emp"表是否成功建立)
mysql> show tables;
如果是成功将是如下显示:
+---------------+
| Tables_in_asb |
+---------------+
| emp |
+---------------+
1 row in set (0.00 sec)
2.3.3 查看数据表的结构
mysql> describe emp;
运行后结果会如如下显示:
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| emp_id | varchar(6) | YES | | NULL | |
| emp_name | varchar(10) | YES | | NULL | |
| emp_age | int(11) | YES | | NULL | |
| emp_sal | int(11) | YES | | NULL | |
| emp_bir | date | YES | | NULL | |
| emp_sex | varchar(5) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
----------------------我------------割--------------------------
2.4 插入数据
2.4.1 使用INSERT语句进行插入记录操作(数据库表中每一行就是一个记录,插入记录实际上就是向表中插入一行)
格式:INSERT INTO table_name(数据表名) VALUES(值1,值2,值3...);
在VALUES关键字后括号中的数值和字符段,必须和你所建的表所定义的字段数据类型必须一致!
mysql> insert into emp values
-> ('100005','啸天',27,3000,'1979-07-10','male');
插入成功后会有如下信息显示:
Query OK, 1 row affected (0.03 sec)
2.4.2 查看表中的数据(可以确定数据是否已经成功插入)
mysql> select * from emp;
成功插入后的数据显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 3000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
一次性插入多行的格式:INSERT INTO table_name(数据表名) VALUES(值1,值2,值3...),(值1,值2,值3...);
mysql> insert into emp values
-> ('100001','红枫',29,8000,'1977-01-01','male'),
-> ('100002','丽鹃',27,7000,'1979-12-31','fmale');
可以查看插入后的数据结果:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 3000 | 1979-07-10 | male |
| 100004 | 红枫 | 29 | 8000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 7000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
----------------------我------------割--------------------------
2.5 修改数据
2.5.1 使用UPDATE语句来更新表中的数据
mysql> update emp set emp_id=100001 where emp_name='红枫';
修改结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 3000 | 1979-07-10 | male |
| 100001 | 红枫 | 29 | 8000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 7000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
如果该语句没有后面的where限制,将会对表中所有的记录都进行修改。
如,给全部人加薪1000,可以如下修改:
mysql> update emp set emp_sal=emp_sal+1000;
修改结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
----------------------我------------割--------------------------
2.6 高级查询方法
2.6.1 记录查询
查询emp表中,emp_name为啸天的全部信息
mysql> select * from emp where emp_name='啸天';
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
查询emp表中,emp_sal,工资在5000以上的全部信息
mysql> select * from emp where emp_sal>5000;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.00 sec)
查询emp表中在1978年1月1日之后出生的
mysql> select * from emp where emp_bir>'1978-01-01';
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.00 sec)
查询emp表中在1979年12月1日之前出生,工资在5000以上的
mysql> select * from emp where emp_bir<'1979-12-01' and emp_sal>5000;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
2.6.2 字段查询
CEO查看员工工资情况
mysql> select emp_name,emp_sal from emp;
查询结果显示如下:
+----------+---------+
| emp_name | emp_sal |
+----------+---------+
| 啸天 | 4000 |
| 红枫 | 9000 |
| 丽鹃 | 8000 |
+----------+---------+
3 rows in set (0.00 sec)
查看1978年后出生的人的姓名、工资和性别
mysql> select emp_name,emp_sal,emp_sex from emp where emp_bir>"1977-12-31";
查询结果显示如下:
+----------+---------+---------+
| emp_name | emp_sal | emp_sex |
+----------+---------+---------+
| 啸天 | 4000 | male |
| 丽鹃 | 8000 | fmale |
+----------+---------+---------+
2 rows in set (0.00 sec)
2.6.3 查询结果排序
用ORDER BY语句对emp表中所有员工工资高低顺序查询结果(默认是从低到高——升序)
mysql> select * from emp order by emp_sal;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
用DESC关键字来进行从高到低排序——降序
mysql> select * from emp order by emp_sal desc;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
3 rows in set (0.00 sec)
2.6.4 查询结果数量的限制
用LIMIT查看emp表中工资收入排名前两个员工的资料:
mysql> select * from emp order by emp_sal desc limit 2;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.00 sec)
查看工资排名第2到第3的员工资料:
mysql> select * from emp order by emp_sal desc limit 1,2;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.01 sec)
使用rand()抽样调查,随机抽取2个员工,查看其资料
mysql> select * from emp order by rand() limit 2;
如如下结果:(随机的)
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+--------+----------+---------+---------+------------+---------+
2 rows in set (0.01 sec)
2.6.5 查询结果的字段联合和重新命名
mysql> select concat(emp_id," ",emp_name) from emp;
查询结果:
+------------------------------+
| concat(emp_id," ",emp_name) |
+------------------------------+
| 100005 啸天 |
| 100001 红枫 |
| 100002 丽鹃 |
+------------------------------+
3 rows in set (0.00 sec)
用AS关键字重新给输出结果命名标题
mysql> select concat(emp_id," ",emp_name) as info from emp;
查询结果如下显示:
+----------------+
| info |
+----------------+
| 100005 啸天 |
| 100001 红枫 |
| 100002 丽鹃 |
+----------------+
3 rows in set (0.00 sec)
2.6.6 日期查询的相关运算
可以通过YEAR()、MONTH()、DAYOFMONTH()函数来提取日期的组成元素
查询7月份出生的员工资料:
mysql> select * from emp where month(emp_bir)=7;
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
可以利用英文月份来查询:
mysql> select * from emp where monthname(emp_bir)="January";
查询结果显示如下:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+--------+----------+---------+---------+------------+---------+
1 row in set (0.00 sec)
利用TO_DAYS()函数可以查询出职工们从出生到现在所经理的时间,单位是天数
mysql> select to_days(current_date) - to_days(emp_bir) as livingdays from emp;
查询后结果如下:
+------------+
| livingdays |
+------------+
| 9425 |
| 10345 |
| 9251 |
+------------+
3 rows in set (0.00 sec)
计算从现在开始经历100天后的日期
mysql> select date_add(now(),interval 100 day);
查询结果如下:
+----------------------------------+
| date_add(now(),interval 100 day) |
+----------------------------------+
| 2005-08-07 13:56:58 |
+----------------------------------+
1 row in set (0.00 sec)
计算从现在开始经历100天后的日期
mysql> select date_sub(now(),interval 100 day);
查询结果如下:
+----------------------------------+
| date_sub(now(),interval 100 day) |
+----------------------------------+
| 2005-01-19 14:00:20 |
+----------------------------------+
1 row in set (0.00 sec)
2.6.7 数据统计
使用COUNT()函数计算表中的数据数目(比如emp表中的员工数目)
mysql> select count(*) from emp;
查询结果如下:
+----------+
| count(*) |
+----------+
| 3 |
+----------+
1 row in set (0.01 sec)
统计工资上5000的数目
mysql> select count(*) from emp where emp_sal>5000;
查询结果如下:
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (0.00 sec)
统计男女职工数目:(GROUP BY语句分类)
mysql> select emp_sex,count(*) from emp group by emp_sex;
查询结果如下:
+---------+----------+
| emp_sex | count(*) |
+---------+----------+
| fmale | 1 |
| male | 2 |
+---------+----------+
2 rows in set (0.01 sec)
使用数据统计函数(MIN(),MAX(),SUM(),AVG())
mysql> select
-> min(emp_sal) as min_salary,
-> max(emp_sal) as max_salary,
-> sum(emp_sal) as sum_salary,
-> avg(emp_sal) as avg_salary,
-> count(*) as employee_num
-> from emp;
查询结果如下:
+------------+------------+------------+------------+--------------+
| min_salary | max_salary | sum_salary | avg_salary | employee_num |
+------------+------------+------------+------------+--------------+
| 4000 | 9000 | 21000 | 7000.0000 | 3 |
+------------+------------+------------+------------+--------------+
1 row in set (0.00 sec)
2.6.8 从多个数据表中检索信息
根据前面的方法,分别进行如下操作:
1). 在数据库asb中建立一个新表dept,表中有两项元素:
dept_id --> varchar(6)
dept_name --> varchar(10)
2). 在表emp中插入如下一行新记录:
+--------+----------+---------+---------+------------+---------+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+--------+----------+---------+---------+------------+---------+
| 100003 | 小红 | 30 | 8000 | 1976-11-11 | fmale |
+--------+----------+---------+---------+------------+---------+
3). 在新表dept中,输入如下记录
+---------+-----------+
| dept_id | dept_name |
+---------+-----------+
| 100005 | MTD |
| 100001 | MTD |
| 100002 | MTD |
| 100003 | HR |
+---------+-----------+
查询emp和dept这两个表中,员工的姓名和部门信息
mysql> select emp.emp_name,dept.dept_name from emp,dept
-> where emp.emp_id=dept.dept_id;
查询结果如下:
+----------+-----------+
| emp_name | dept_name |
+----------+-----------+
| 啸天 | MTD |
| 红枫 | MTD |
| 丽鹃 | MTD |
| 小红 | HR |
+----------+-----------+
4 rows in set (0.00 sec)
多表查询时注意:
1). FROM子句必须给出所查询的表的全部名称
2). 选择字段时候注明其所属表的名称(如emp表中的emp_id要表示为emp.emp_id)
3). 在Where子句中必须指明查询的条件(如,emp.emp_id和dept.dept_id是相同意义的元素)
----------------------我------------割--------------------------
2.7 删除表单数据
2.7.1 使用DELETE语句删除表单中的数据记录
小红不在了哦,得删了吧
mysql>delete from emp where emp_name='小红';
执行成功后会如下显示:
Query OK, 1 row affected (0.06 sec)
省略where是删除全部表中的记录
2.7.2 使用DRO删除表
(先随便建立一个数据库dt,并建张临时表fuck)
mysql>drop table fuck;
2.7.3 使用DRO删除数据库
mysql>drop database dt;
----------------------我------------割--------------------------
2.8 改变数据表的结构
先建立一个新表id (内带一个属性id_name varchar(6)),输入一行数据(xgw)
2.8.1 对表重新命名
alter table 数据表名 rename as 数据表的新名字;
把表id改名成name
mysql> alter table id rename as name;
2.8.2 给数据表增加一个字段
alter table 数据表名 add 字段名称 字段类型;
在改过名的新表name中增加一个字段(id int(6))
mysql>alter table name add id int(6);
增加成功后有如下显示:
Query OK, 1 row affected (0.26 sec)
Records: 1 Duplicates: 0 Warnings: 0
2.8.3 更改已经建立的字段类型
alter table 数据表名 modify 字段名称 字段类型;
把name表中id属性的类型改成10个长度的字符类型
mysql> alter table name modify id varchar(10);
alter talbe语句还有很多功能,具体可查阅MySQL的技术手册。
(the questions,call me anytime! E-mail:tt981@netease.com)
※※※※※※※※※※※※※※Mysql 初级解读 (所用版本:4.1.10)※※※※※※※※※※※※※※
CopyRight By FengLin , 2005-4-29
Oct
6
今日我地云佐珠海
但系回来后,我要去帮我爸整野,冇时间去陪阿珊
佢唔开心。我都唔开心。
本来出去玩完应该会好开心咖~~~
但是因为我要回来帮我爸整野,
陪唔到我只猪。佢就唔开心
我唔明白。
我真系唔明白,点解我只猪我要去选择我屋企人同佢。
一边系我的家人,一边系我咖爱人,
我自己真系唔知点去择~~~
有时我会想我只猪能体谅下我
我唔可以唔帮我屋企人做野。
因为佢地系我咖父母养我育我的人
但系我只猪又为我做过好多事。
我又好想令佢过得开心。
事实上,我从来未令佢过得开心。
我经常会冇钱。
有时真系会想我系唔系向连累人~~
我好似咩都做唔好~~~
之从我学会写程序后。
就好似发疯咁去写自己想要的程序,
把好多事都忘记了。
好多应该可以做得更好的事,我却做的好差。差得好离题
不过我总系经常令到我只猪唔开心~~~
我什么时候才会令到我只猪开心呢??
我又唔想听晒佢话。
我已经好多事都听佢话。
但系有地事我真系唔想听。
----------------------------------------------
生活总在苦行。我什么时候才能走到生活的尽头~
但系回来后,我要去帮我爸整野,冇时间去陪阿珊
佢唔开心。我都唔开心。
本来出去玩完应该会好开心咖~~~
但是因为我要回来帮我爸整野,
陪唔到我只猪。佢就唔开心
我唔明白。
我真系唔明白,点解我只猪我要去选择我屋企人同佢。
一边系我的家人,一边系我咖爱人,
我自己真系唔知点去择~~~
有时我会想我只猪能体谅下我
我唔可以唔帮我屋企人做野。
因为佢地系我咖父母养我育我的人
但系我只猪又为我做过好多事。
我又好想令佢过得开心。
事实上,我从来未令佢过得开心。
我经常会冇钱。
有时真系会想我系唔系向连累人~~
我好似咩都做唔好~~~
之从我学会写程序后。
就好似发疯咁去写自己想要的程序,
把好多事都忘记了。
好多应该可以做得更好的事,我却做的好差。差得好离题
不过我总系经常令到我只猪唔开心~~~
我什么时候才会令到我只猪开心呢??
我又唔想听晒佢话。
我已经好多事都听佢话。
但系有地事我真系唔想听。
----------------------------------------------
生活总在苦行。我什么时候才能走到生活的尽头~