免费 pdf 库类 library

虽然 PHP 有附 PDFlib,不过使用起来实在有点复杂。

FPDF
虽然现在已经停止更新了,但 FPDF 可谓是元老级的 PDF 程式库,短短的几行程式就可以产生出 PDF 档案。最可怕的是现今的 PHP PDF 程式库大多是由 FPDF 衍生出来的。
(FDPF 的范例)

授权方式: 任你处置
官方网址: http://www.fpdf.org/

UFPDF
由于 FPDF 不支援 UTF-8 ,所以有善心人士做了一个 UFPDF 出来。

授权方式: GPL
官方网址: http://www.acko.net/blog/ufpdf

FPDI (Apache Software License 2.0)
可以把 PDF 档案汇入当作 FPDF 的样板使用。而且 FPDI 还另外提供了FPDI_Protection 来保护 FPDF/FPDI 的 PDF 档案。

授权方式: Apache License 2.0
官方网址: http://fpdi.setasign.de

TCPDF
也是由 FPDF 改写而来,除了支援 UTF-8 之外,最特别的地方就是整合了 Generic Barcode Render Class,可以直接在 PDF 上加上条码。(目前只支援 PHP5)

授权方式: LGPL
官方网址: http://tcpdf.sourceforge.net/

PDFB
也是用来产生 Barcode 的 PDF Library ,支援 Code 3 of9,Code 128, Interleaved 2 of 5, and UPC-A

授权方式: LGPL
官方网址: http://chir.ag/tech/download/pdfb/

================= HTML 转 PDF =================

HTML 2 (F)PDF
嫌一个个贴文字跟图型到 PDF 太累? HTML 2 (F)PDF 一次帮你把 HTML 转成 PDF,够轻松了吧。

授权方式: LGPL
官方网址: http://html2fpdf.sourceforge.net/

HTML To PDF Conversion
另一个将 HTML 转为 PDF 的程式,只是看起来不支援 UTF-8。

授权方式: PHP
官方网址: http://www.rustyparts.com/pdf.php

dompdf
支援 UTF-8 的 HTML 转 PDF 程式,但是必须安装 PDFLib 的正式授权版才能支援UTF-8 ,且需在 PHP 5 环境下执行。

授权方式: LGPL
官方网址: http://www.digitaljunkies.ca/dompdf

html2ps and html2pdf
也是可以把 HTML 转成 PDF 的程式,不过是看起来是透过 GhostScript 来转换的,有兴趣的人可以去看看。

授权方式: FREE for commercial and non-commercial use
官方网址: http://www.tufat.com/script.php?id_num=19

读取汉字点阵数据

背景知识:
简体中文国标字库(1981年订,中国大陆)。7445个字符,其中汉字6773个,包括一级汉字3755个,二级汉字3008个。采用2字节(16位二进制)编码。

心血来潮,想模仿LCD的显示效果,写了个从点阵字库中提取汉字点阵数据的一段php脚本。

dot


区位码:国标GB2312规定,所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个”区”,每一列称为一个”位”,因此, 这个方阵实际上组成了一个有94个区(区号分别为0 1到94)、每个区内有94个位(位号分别为01到94)的汉字字符集。一个汉字所在的区号和位号简单地组合在一起就构成了该汉字的”区位码”。在汉字的 区位码中,高两位为区号,低两位为位号。由此可见,区位码与汉字或符号之间是一一对应的。

内码:汉字的内码是指在计算机中表示汉字的编码。机内码与区位码稍有区别。为什么不直接用区位码作为计算机内的编码呢? 这是因为汉字的区码和位码的范围都在1到94内, 如果直接用区位码作机内码, 就会与基本ASCII码冲突。 汉字的内码通常与所使用的计算机系统有关。目前,对于国内大多数的计算机系统,一个汉字的内码占两个字节,分别称为高位字节与低位字节,且这两位字节与区 位码的关系如下: 内码高位=区码+A0H(H表示十六进制) 内码低位=位码+A0H 例如,汉字”啊”的区位码为”1601″,区码和位码分别用十六进制表示即为”1001H”,则它的内码为”B0A1H”。其中B0H为内码的高位字节, A1H为内码的低位字节。

php代码:返回由0和1组成的字符串。

<?php
/**
 * 读取汉字点阵数据
 *
 * @author    legend <[email protected]>
 * @link      http://www.ugia.cn/?p=82
 * @Copyright www.ugia.cn
 */

$str "中华人民共和国";

$font_file_name   "simsun12.fon"// 点阵字库文件名
$font_width       12;  // 单字宽度
$font_height      12;  // 单字高度
$start_offset     0;   // 偏移

$fp fopen($font_file_name"rb");

$offset_size $font_width $font_height 8;
$string_size $font_width $font_height;
$dot_string  "";

for ($i 0$i strlen($str); $i ++)
{
    if (
ord($str{$i}) > 160)
    {
        
// 先求区位码,然后再计算其在区位码二维表中的位置,进而得出此字符在文件中的偏移
        
$offset = ((ord($str{$i}) – 0xa1) * 94 ord($str{$i 1}) – 0xa1) * $offset_size;
        
$i ++;
    }
    else
    {
        
$offset = (ord($str{$i}) + 156 – 1) * $offset_size;
    }

    // 读取其点阵数据
    
fseek($fp$start_offset $offsetSEEK_SET);
    
$bindot fread($fp$offset_size);

    for ($j 0$j $offset_size$j ++)
    {
        
// 将二进制点阵数据转化为字符串
        
$dot_string .= sprintf("%08b"ord($bindot{$j}));
    }
}

fclose($fp);

echo $dot_string;
?>

点阵字库及程序打包下载:fontfun.rar
其中包括两个点阵字体文件:一个为16×16的chs16.fon,另一个为12×12的simsun12.fon,偏移均为零。

ficlass在非IE浏览器中上传jpg文件的问题

在ficlass1.1.2中photo.php

 $is_image=$_FILES[‘loadfile’][‘type’] == ‘image/bmp’ || $_FILES[‘loadfile’][‘type’] == ‘image/gif’ ||  $_FILES[‘loadfile’][‘type’] == ‘image/png’ || $_FILES[‘loadfile’][‘type’] == "image/pjpeg" ;

替换成

 $is_image=$_FILES[‘loadfile’][‘type’] == ‘image/bmp’ || $_FILES[‘loadfile’][‘type’] == ‘image/gif’ ||  $_FILES[‘loadfile’][‘type’] == ‘image/png’ || $_FILES[‘loadfile’][‘type’] == "image/pjpeg" || $_FILES[‘loadfile’][‘type’] == "image/jpeg";

离第一次发布ficlass过去了4个月了

ficlass算是我学习php以后的第二个作品,第一个就是现在用的这个fiblog,第一个作品可想而知,是写的多么的烂 ,我现在都不想去看fiblog的源码了,简直太糟糕了!!第二个ficlass总算好点了,自己才敢发布出来,但是现在看上去,还是非常的粗糙.打算推倒了重新来写一个.不过发现自己写程序很少写文档,一个很不好的习惯,如果这次能够重写,也要学着自己写文档了.
因为不再是在学校里面的呆着了,如果没有人需要.可能计划就要搁浅了,如果有人需要,请到留言给我点回音.

重写太累了,先用了点时间,修改了用户反映的上传图片没有限制大小的问题!然后把lightbox应用到了班级相册 !
http://www.flyy.info/ficlass1.1.2.zip
数据结构没有变化,所以只需要覆盖上一个版本!
修改了photo.php   photo.tpl

书还是要仔细看啊

看php注册模式,今天突然看明白了
还有xhtml css也要好好看看了

A:hover IMG {
BORDER-RIGHT: #a5d516 4px solid; BORDER-TOP: #a5d516 4px solid; BORDER-LEFT: #a5d516 4px solid; BORDER-BOTTOM: #a5d516 4px solid
}

如何看待开源软件的知识产权问题

近年来,开源软件在国内外发展很快,正在走向成熟,开始与传统私有软件形成并存的态势,甚至在某些领域内渐成主流。关于开源软件知识产权的纠纷也已浮出 水面。在国内,也出现了一些违约、违法的问题,多数人首先在认识上存在误区:如对自由/开源软件性质和特征的界定,对开源软件各类知识产权保护法律规定的 强度和范围的理解,对各种开源许可协议的内容或条款以及其解释的认知,在同时执行多项许可证时对各证间冲突处理的把握,对自由软件运动发展中迄今尚存的一 些争议问题或在法律上出现的灰色地带在执行中的处置……等,存在着不少混乱认识和错误概念;必须指出,也确有一些造假、侵权、违法的行为和事件。

  知识产权是法律赋予人们对智力劳动成果所享有的民事权利。

  通常开源软件的知识产权表现在下列五个方面:

  1.著作权(或版权)

  2.专利权

  3.商标权

  4.商业秘密

  5.反不正当竞争

  (一)版权

  自由/开源软件是一种有版权的软件,自由/开源软件是一种得到许可的软件。自由/开源软件许可协议(或许可证)是其版权实施的延伸。

   自由/开源软件采用“左版”(CopyLeft)的概念,虽然其“版权”也应考虑到保护“作者对其作品享有权益”的作用,但由于自由开源运动的本质是发 扬“自由、开放精神”,把重点放在扩大用户的自由和权益方面,放在用户在再传播(或再发布)时得到扩大的许可授权方面,而不是把重点放在对作者特权的保护 方面(如表现为不收版权费,任何人都可自由获得、复制、修改、发布原创作品或升级产品的源代码,淡化作者的特权,甚至“模糊”可执行的“版权”,总之由原 作者放弃自己的一些知识产权的权利,向公众公布许可等)。它不同于传统“版权”(即“右版”,CopyRight)在“保护作者对作品享有法定特权”方面 所表现的刚性化的特征。

  自由/开源软件的版权理论上属于原创软件作品的作者(writers、authors、developers),以及升级软件作品的后续修改者(贡献者Contributors,志愿者Volunteers),总称为所有者(owners)。

  软件许可协议是一种契约和授权方式,是用户合法使用软件作品的一个凭证,相当于软件作品的作者(或所有者,或权利人,或许可人)与用户(或被许可人,或“你”)之间签订一个合同来规定双方当事人在处理软件作品时的权利、义务和责任。

   多数人没有注意到开源软件许可的存在,这是因为它不同于传统的书面签字或上网点击那样“接受许可”的方式。开源软件的许可协议是开放的,只要具有相应行 为就可“默认”接受的许可;但如“被许可人”不遵守有关许可条件,许可随时会被终止,“被许可人”持有开源软件的权利将自动终止,并需承担违约责任的风 险。

  BSD、GPL、LGPL、MPL是应用最为普遍的四种典型的自由/开源软件的许可协议(占自由/开源软件全部许可协议的80%以上)。
BSD许可证

  BSD是一种自由软件,其许可协议为FreeBSD。FreeBSD的主要规定是:

  公开BSD的源码,可让你自由获得、复制、修改、分发BSD原创软件作品(源码);也可在BSD公开的源码基础上衍生你的软件作品。衍生的软件作品(其源码)可以公开,也可不公开。

   在你进行修改或衍生时,必须对哪些是你所获得的BSD原创软件作品所实行的BSD许可证,哪些是你在其上进行的再开发,或生成你自己的许可证,要区分清 楚。当你依法处理的作品再分发时,必须作出相应的版权声明,列出相应条件,并表明BSD拒绝担保的声明。对于获得的BSD原创软件作品(源码)的版权(所 有权)要明确表示出来,如标明它是加州大学伯克利分校的(=regents of the University of California, =University of California, Berkeley),即其版权属于加州大学“董事”和“贡献者”,或“所有者”(owner),并标明BSD许可证发布时间(如=1998),而且你要对 使用BSD的原创软件作品向版权所有者 (owner)表示感谢(这些标明都要让你的用户知道)。如果你把获得的这些BSD原创软件作品看成是你自己的“自主知识产权”,那无异于“剽窃”。至于 你衍生的软件作品,可以公开,也可以不公开(其实微软也使用了很多BSD的原创作品,但微软的衍生作品不公开)。

  必须明确,BSD 软件版权所有者或贡献者是以“AS IS”(即“保持原样”)方式提供的。在你再开发的衍生作品中,未获得预先特定许可时,不得用伯克利<组织>或贡献者的名字来为你背书;原创 作品版权所有者或贡献者均不对你使用、修改、再传播、再发行的BSD原创作品以及你的衍生作品提供任何直接或隐含的担保,同时也不承担相应的责任。

  GPL许可

   多数自由/开源软件采用通用许可协议:GNU/GPL(GNU General Public License,简称GPL),这是自由软件基金会(Free Software Foundation,FSF)发布的一个软件授权许可证。现有40000个版本/方案(Projects)采用GPLV2。Linus Tovalds将Linux在GUN/GPL下发布,自由软件基金会将Linux作为GUN操作系统的内核。

  GPL承认软件作品作 者的著作权(所有权),同时也要求作者必须允许任何人(或用户,或“你”)享有对其作品使用、复制、修改、衍生、发行的自由权利;作为一个限制条件, GPL还要求用户不能改变软件的授权协议(即要将GPL向各级用户传递下去),要求用户在对该软件作品作出的修改或制作衍生作品并进行再发行时,都要一贯 遵守GPL规则;如果执行GPL协议的原创软件是自由软件,则该自由软件经过修改或衍生后的软件也应是自由软件;自由软件在作二进制整体运行时,不允许一 部分软件的源码是开源的,另一部分的源码是闭源的,即不允许出现混合源码的现象。GPL协议还规定,不得使用其它许可证进行再发布。

  GPL协议是一个开放的协议,是在原创软件作品上实施“使用、复制、修改、衍生、发行”等相应行为时出现的“默认接受”的许可。“默认许可”是执行GPL协议的一大特点,不同于常规签署协议许可的做法。
如 果有人对自由/开源软件进行修改、衍生、再发行时使之闭源,从而改变了自由软件的性质和形态,那就违反了GPL协议。有人认为:“在开源领域违反GPL协 议的行为就相当于在传统版权中的‘盗版’性质,同样可称为侵犯知识产权,要予以打击”;也有人认为:“如果违反了GPL协议,GPL协议在其再发行、再传 播过程中就自动终止,这时如果还要按‘GPL规则’继续自由索取原创软件源码,而在进行衍生闭源后再发行,将遭致法律风险”。

  GPL许可协议是由自由软件基金会制定的。执行GPL规则的软件作品其版权理论上属于该软件作品的“作者”或“开发者”,以及“修改者”或“贡献者”,他们可统称为版权“所有者”。

   GPL虽然认承作者对其软件作品的所有权,但由于自由/开源软件是由全球志愿者集体开发的成果,开源社区的组织也较为自由松散,因此其版权或著作权的所 有者似乎不可能明确认定为某些个人或某个社区。有人认为:对“自由/开源软件作品来说,迄今尚未被全球软件组织或软件工作者公认是拥有一种可执行的版 权”。对linux内核(Kernel),版权所有者们委托Linus Tovalds作为版权所有者的代表。几天前,OSDL首席执行官Stuart Cohen告诉我,Linus代表内核全体所有者持有的版权是“右版(CopyRight)”,我对此怀疑,似应为“左版(CopyLeft)”。

  国内个别企业,根据GPL规则将自由获得的开源软件,在进行修改、衍生后,在再发行自己的版本时,将之变成违反GPL规则的闭源软件,这不但可看成具有负面影响的道德问题,还可能将面临侵犯知识产权遭受法律追诉的风险。

   Ubuntu(社区)的Linux发布版是移植、剪裁Debian(社区)的软件资源进行再开发、再发布的成果。今年3月,Ubuntu的创始人 Mark Shuttleworth对我说,Ubuntu在向社会、市场提供Linux发布版时,要取得Debian的“授权”(并向Debian支付相应费用)。 我想这个“授权”不是“版权”的“授权”,是Ubuntu为了要不断取得Debian的软件资源、纠错升级、设计思想、技术诀窍、运作经验等方面的“支 持”而采取的相应措施。

  RedHat公司也认为,如果有人对RH发布版进行修改而不遵守GPL规则,则对修改后的软件,RedHat概不负责,不提供支持、服务,包括不提供补丁、升级及其他服务事项。但RedHat对自己的发布版则保证提供及时完善的支持和服务。

  LGPL

  LGPL,早期称之为“库级-GPL”(Lib-GPL),后来称之为“轻型-GPL”(Light-GPL)或“宽松-GPL”(Lesser-GPL),它不同于GPL许可证,在执行LGPL许可证时,允许库函数可以自由地联接到私有软件。

  MPL

  MPL的版权理论上也属于其原创软件作品的原始开发者与后续修改者、贡献者,通常由Mozilla.org(属Mozilla开源社区)代管。MPL包含四个不同的许可证,在使用中要注意协调好许可证之间的冲突。
(二)专利权

  自由/开源软件在版权(包括许可协议)保护方面取得了较为宽松的环境,但自由/开源软件躲不开专利的旋涡。侵犯专利权,不但要追溯开源软件“发行者”的法律责任,还要追溯“使用者”(用户)的法律责任。

  众所周知,2005年欧盟没有通过软件(整个软件)的专利法案,美国是支持软件专利最强有力的国家,不能低估美国做法对国际的影响。

  对自由/开源软件来说,很多软件程序是由全球志愿者集体编写、合作开发的,其中难免携带“隐性专利”。

   自由软件基金会首席律师Eben Moglen(也是我们中国开源软件推进联盟智囊团高级顾问)领导制定了GPL3.0,企图改变“GPL许可证只能解决版权问题,不能解决专利问题”的现 状。GPL3.0解决专利问题的重要思路是:沉淀在互联网上绝大多数知识产权是属于开源的,在当代,很少有组织和个人不上网。如果持有隐性专利的组织或个 人要状告开源软件发行者专利侵权,那后者也有可能反告前者在互联网上对“开源”的侵权,从而达到权利公平、法律平衡的制约效果。

  (三)商标权

   在美国有一个非盈利组织“Linux Mark Institute(LMI)”得到Linus Torvalds授权专门保护“Linux”商标的合法使用,年度授权许可费200-5000美元不等。在中国只有在国家商标局一旦批准“Linux” (文字商标)归属Linus Torvalds后,美国LMI才可指派中国境内律师机构来办理此事。

  有人曾向美国专利商标局申请把“Open Source”作为商标,但未被批准。

  (四)商业秘密

  我们认为,自由/开源软件的全部技术是由:以开放源代码所表征的公开的技术,与不公开的工程化实现技术两部分组成。

  所谓自由/开源软件的工程化实现技术表现为技术诀窍、熟练技巧、工程经验、隐性技术、测试分析,它着重于改善操作稳定性、优化计算效率、增强灵活扩展性、提高产品质量、催化产品成熟度。

  在工程化实现技术中自然包含商业秘密。

  (五)反不正当竞争

  自由/开源软件在起步发展过程中,正在走向成熟、走上规模,现在还谈不上行业垄断问题,因此基本上也还不存在“不正当竞争”问题,反不正当竞争还有待时日。

dp.SyntaxHighlighter

dp.SyntaxHighlighter is a free JavaScript tool for source code syntax highlighting.

The script is meant to help a developer to post code snippets online with ease and without having to worry about applying format. People who use blogs like MovableType, .Text (dotText), dasBlog and any other system can easily add code to their posts.

If you are looking to get syntax highlighter for your blog, give dp.SyntaxHighlighter a try!

不过的源码高亮显示

phpBB 3.0 Beta1 released

phpBB3β1已经发布http://www.phpbb.com/phpBB/viewtopic.php?f=14&t=400283
下载http://www.phpbb.com/development/
Minimum Requirements

phpBB3 has a few requirements which must be met before you are able to install and use it.

  • A webserver or web hosting account running on any major Operating System with support for PHP
  • A SQL database system, one of:

    • MySQL 3.23 or above (MySQLi supported)
    • PostgreSQL 7.x
    • SQLite
    • Firebird 1.5+/Interbase 7.1+
    • MS SQL Server 2000 or above (directly or via ODBC)
    • Oracle

  • PHP 4.3.3 or above with support for the database you intend to use.
  • These optional presence of the following modules within PHP will provide access to additional features, but they are not required.

    • zlib Compression support
    • Remote FTP support
    • XML support
    • Imagemagick support

the time of our lives (SONG OF FIFA WORLD CUP 2006)

★★★SONG OF FIFA WORLD CUP 2006★★★

SINGER:il divo & Toni Braxton
Language:ENGLSIH+SPANISH

the time of our lives

There was a dream
Long time ago
There was a dream
Destined to grow

Hacerse pasion (To become passion)
Con fuego abrazar (and to hug with fire)
El deseo de dar sin fin (the will to give in an endless way)
El deseo de ganar (the will to win)

For a lifetime of progress
That runs here today
We’ll go all the way

Hey they feel like having the time of our lives
Let’s light the fire find the plain
Let’s go together as one inside
’Cause it feels like we’re having the time of our lives
We’ll find the glory and the pain
All that we are, for all that we are
For time of our lives

Hoy es el dia (Today is the day)
Es la ocasion de triunfar (the time to succeed)
Para hacer realidad el destino que so?abamos conseguir (reality the destiny we dreamt to achieve)
Una vida de lucha nos trajo hasta aqui (A life of fight brought us here)
Y llegare hasta el final (and I’ll keep on till the end)
Heaven knows

’Cause it feels like we’re having the time of our lives
Juntos, unidos, triunfara nuestro deseo de ser el mejor (Together, united, the will to be the best will win)
’Cause it feels like we’re having the time of our lives
Hasta la gloria, junto a ti, (Till the glory, along with you )
Llego el momento de la verdad (the moment of truth has arrived)
El momento llego (The moment arrived)

Y ya nunca jamas lo podre olvidar…
(And now I will never ever forget it…)

’Cause it feels like we’re having the time of our lives
Juntos, unidos, triunfara nuestro deseo de ser el mejor (Together, united, the will to be the best will win)
’Cause it feels like we’re having the time of our lives
Hasta la gloria, junto a ti, (Till the glory, along with you )
El momento llego (The moment arrived)
El momento llego (The moment arrived)

We’ll find the glory we’ll be there
For all that we are
For one thing that we wanna be and all that we are
For the time of our lives
For the time of our lives 

PS:REALLY WONDERFUL MELODY,ENJOY IT,you guys!

MySQL多表操作和备份处理

多表操作

    在一个数据库中,可能存在多个表,这些表都是相互关联的。我们继续使用前面的例子。前面建立的表中包含了员工的一些基本信息,如姓名、性别、出生日期、出生地。我们再创建一个表,该表用于描述员工所发表的文章,内容包括作者姓名、文章标题、发表日期。

    1、查看第一个表mytable的内容:

mysql> select * from mytable;
+———-+——+————+———–+
| name | sex | birth | birthaddr |
+———-+——+————+———–+
| abccs |f | 1977-07-07 | china |
| mary |f | 1978-12-12 | usa |
| tom |m | 1970-09-02 | usa |
+———-+——+————+———–+
 

    2、创建第二个表title(包括作者、文章标题、发表日期):

mysql> create table title(writer varchar(20) not null,
-> title varchar(40) not null,
-> senddate date);
&nbsp;&nbsp;&nbsp;&nbsp;向该表中填加记录,最后表的内容如下:
<ccid_nobr>
<table width="400" border="1" cellspacing="0" cellpadding="2"
 bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
<tr>
    <td bgcolor="e6e6e6" class="code" style="font-size:9pt">
    <pre><ccid_code>  mysql> select * from title;
+——–+——-+————+
| writer | title | senddate |
+——–+——-+————+
| abccs | a1 | 2000-01-23 |
| mary | b1 | 1998-03-21 |
| abccs | a2 | 2000-12-04 |
| tom | c1 | 1992-05-16 |
| tom | c2 | 1999-12-12 |
+——–+——-+————+
5 rows in set (0.00sec)
 

    3、多表查询

    现在我们有了两个表: mytable 和 title。利用这两个表我们可以进行组合查询:
    例如我们要查询作者abccs的姓名、性别、文章:

mysql> SELECT name,sex,title FROM mytable,title
-> WHERE name=writer AND name=′abccs′;
+——-+——+——-+
| name | sex | title |
+——-+——+——-+
| abccs | f | a1 |
| abccs | f | a2 |
+——-+——+——-+
 

    上面例子中,由于作者姓名、性别、文章记录在两个不同表内,因此必须使用组合来进行查询。必须要指定一个表中的记录如何与其它表中的记录进行匹配。

    注意:如果第二个表title中的writer列也取名为name(与mytable表中的name列相同)而不是writer时,就必须用mytable.name和title.name表示,以示区别。

    再举一个例子,用于查询文章a2的作者、出生地和出生日期:

mysql> select title,writer,birthaddr,birth from mytable,title
-> where mytable.name=title.writer and title=′a2′;
+——-+——–+———–+————+
| title | writer | birthaddr | birth |
+——-+——–+———–+————+
| a2 | abccs | china | 1977-07-07 |
+——-+——–+———–+————+
 

    修改和备份、批处理
    有时我们要对数据库表和数据库进行修改和删除,可以用如下方法实现:

    1、增加一列:
    如在前面例子中的mytable表中增加一列表示是否单身single:
    mysql> alter table mytable add column single char(1);

    2、修改记录
    将abccs的single记录修改为“y”:
    mysql> update mytable set single=′y′ where name=′abccs′;     现在来看看发生了什么:

mysql> select * from mytable;
+———-+——+————+———–+——–+
| name | sex | birth | birthaddr | single |
+———-+——+————+———–+——–+
| abccs |f | 1977-07-07 | china | y |
| mary |f | 1978-12-12 | usa | NULL |
| tom |m | 1970-09-02 | usa | NULL |
+———-+——+————+———–+——–+
 

    3、增加记录
    前面已经讲过如何增加一条记录,为便于查看,重复与此:

mysql> insert into mytable
-> values (′abc′,′f′,′1966-08-17′,′china′,′n′);
Query OK, 1 row affected (0.05 sec)
 

查看一下:

mysql> select * from mytable;
+———-+——+————+———–+——–+
| name | sex | birth | birthaddr | single |
+———-+——+————+———–+——–+
| abccs |f | 1977-07-07 | china | y |
| mary |f | 1978-12-12 | usa | NULL |
| tom |m | 1970-09-02 | usa | NULL |
| abc |f | 1966-08-17 | china | n |
+———-+——+————+———–+——–+
 

    4、删除记录
    用如下命令删除表中的一条记录:mysql> delete from mytable where name=′abc′;
    DELETE从表中删除满足由where给出的条件的一条记录。
    再显示一下结果:

mysql> select * from mytable;
+———-+——+————+———–+——–+
| name | sex | birth | birthaddr | single |
+———-+——+————+———–+——–+
| abccs |f | 1977-07-07 | china | y |
| mary |f | 1978-12-12 | usa | NULL |
| tom |m | 1970-09-02 | usa | NULL |
+———-+——+————+———–+——–+
 

    5、删除表:
    mysql> drop table ****(表1的名字),***表2的名字;
    可以删除一个或多个表,小心使用。

    6、数据库的删除:
    mysql> drop database 数据库名;
    小心使用。

    7、数据库的备份:
    退回到DOS:
    mysql> quit
    d:mysqlbin

    使用如下命令对数据库abccs进行备份:
    mysqldump –opt abccs>abccs.dbb
    abccs.dbb就是你的数据库abccs的备份文件。

    8、用批处理方式使用MySQL:

    首先建立一个批处理文件mytest.sql,内容如下:

use abccs;
select * from mytable;
select name,sex from mytable where name=′abccs′;
 

    在DOS下运行如下命令:d:mysqlbin mysql < mytest.sql

    在屏幕上会显示执行结果。

    如果想看结果,而输出结果很多,则可以用这样的命令: mysql < mytest.sql | more

    我们还可以将结果输出到一个文件中: mysql < mytest.sql > mytest.out