Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

我眼中的数据库——不懂数据库及数据库升级的进来瞟两眼

[复制链接]
羽扇纶巾 发表于 2006-7-11 14:21:20 | 显示全部楼层 |阅读模式
在论坛也呆了一段时间了,
可惜就是技术不好,
没有留下有价值的一些东西。
不过也对某些东西有了一定的了解,
今天拿出来与大家共同分享。

注:此贴不是很有价值的技术帖子,
而且有些东西都只是个人的想法,
看看即可。

目录:
2楼 数据库及数据表
3楼 升级数据库
4楼 参考资料
14楼为老龙额外补充的知识

谢谢老龙啦!!

[ 本帖最后由 羽扇纶巾 于 2006-7-11 16:36 编辑 ]

[ 本帖最后由 羽扇纶巾 于 2006-7-12 09:11 编辑 ]

评分

2

查看全部评分

 楼主| 羽扇纶巾 发表于 2006-7-11 14:29:28 | 显示全部楼层
1.数据库
数据库是一个论坛的灵魂,
因为论坛所以数据全部存在数据库中。
所以我们应该对数据库十分重视。
一方面要爱护数据库,不随便更改其参数,
另一方面还要做好数据的保护工作,
且莫将论坛的数据对外。


2.数据表(table)
数据库是有数据表构成的。
在现在的Discuz! 4.1.0中,共有59个数据表。
每个数据表都存放着不同的论坛数据。
现将数据表做一个简单的分析。

(1)表名
Discuz! 4.1.0中的数据表都是以cdb_开头的,
后接一个英文单词,大概可以表示所存放的数据的内容。
(2)表中的项目
字段
类型(type)
Null
默认(value)
链接倒
MIME

本人技术有限,不知道这些项目是干吗的。
不过这里列举些类型:
smallint
tinyint
char
int
tinyint
mediumint

这些词语之后会有个被括号围住的数字
具体是什么别问我。。。
(3)构成
数据表是由数据行(row)和数据列(colume)构成的
一个数据行就是数据表内的一条记录(record)
一个记录一般包含多个信息,数据表中的每一个数据列都对应着一个信息
关系:把存放在某个数据表内的信息和存放在另一个数据表内的信息通过某种方式关联起来,而这种关联就是通过查找两个数据表有无共同的元素来实现的。

注:新手看表的话,一般看看字段和注释就行了。
回复

使用道具 举报

 楼主| 羽扇纶巾 发表于 2006-7-11 14:29:56 | 显示全部楼层
在安装一些插件,
或者批量修改论坛的一些参数时,
由于数据库不支持或者批量修改的麻烦,
这就要需要对数据库进行升级。


现在通过一些常用的升级数据库的语句做一些本人肤浅的阐释(有些解释可能不规范,见谅,见谅):

1.增加一个表
  1. CREATE TABLE table_name
  2. (ziduan1 ziduanshuxing
  3. ……
  4. );
复制代码

说明:
CREATE TABLE是建表的意思,
table_name 是所建表的表名,
括号内是表中的字段及其属性。
表名、字段两端应该有这个符号(`,键盘上esc键下的那个键,注意要在英文状态)
举例:
  1. CREATE TABLE `cdb_lottery` (
  2.   `id` mediumint(8) unsigned NOT NULL auto_increment,
  3.   `username` varchar(15) NOT NULL default '',
  4.   `isadmin` int(10) NOT NULL default '0',
  5.   `lottery` int(10) NOT NULL default '0',
  6.   `timing` int(10) NOT NULL default '0',
  7.   `times` int(10) NOT NULL default '0',
  8.   `finalno` int(10) NOT NULL default '0',
  9.   `buytime` int(10) NOT NULL default '0',
  10.   `winner` varchar(15) NOT NULL default '',
  11.   `total` int(10) NOT NULL default '0',
  12.   PRIMARY KEY  (`id`)
  13. ) TYPE=MyISAM AUTO_INCREMENT=149 ;
复制代码

看了例子就应该很明白了吧。
(“)”后的那句我不懂。。。)
注:上述语句来源:
https://discuz.dismall.com/thread-263392-1-1.html

2.增加一个字段
  1. ALTER TABLE table_name ADD COLUMN column_name type default value;
复制代码

说明:
ALTER TABLE是改变表的意思,
column_name 是所增加的字段,
后为其属性。
表名、字段两端应该有这个符号(`,键盘上esc键下的那个键,注意要在英文状态)
举例:
  1. ALTER TABLE `mytable` ADD COLUMN `new_column` varchar(10) default '';
复制代码


3.增加一个一个列做为主键
  1. ALTER TABLE table_name ADD COLUMN column_name type auto_increment PRIMARY KEY;
复制代码

举例:
  1. ALTER TABLE `store` ADD COLUMN `book` int(10) auto_increment PRIMARY KEY;
复制代码



4.更改一个字段名
  1. ALTER TABLE table_name CHANGE name1 name2 type default value;
复制代码

name1为原来的字段名,name2为修改后的字段名。
举例:
  1. ALTER TABLE` myinfo` change `mobilephone` `cellphone` int(3) unsigned default 1;
复制代码


5.更改一个字段的默认值
  1. ALTER TABLE table_name ALTER column_name set default value;
复制代码

举例:
  1. ALTER TABLE `store` ALTER `book` set default '0';
复制代码


6.更改一个字段的数据类型
  1. ALTER TABLE table_name CHANGE COLUMN column_name column_name type;
复制代码

举例:
  1. ALTER TABLE `store` CHANGE COLUMN `book` varchar(20);
复制代码


7.插入新数据
  1. INSERT INTO table_name VALUES ('','',1);
复制代码

举例:
  1. INSERT INTO cdb_settings VALUES ('allowpay', '0');
  2. INSERT INTO cdb_settings VALUES ('allowmedalpay', '0');
  3. INSERT INTO cdb_settings VALUES ('senddays', '30');
  4. INSERT INTO cdb_settings VALUES ('holidaypay', '0');
  5. INSERT INTO cdb_settings VALUES ('allowpaylist', '0');
  6. INSERT INTO cdb_settings VALUES ('allowlist', '0');
  7. INSERT INTO cdb_settings VALUES ('listauthor', '0');
  8. INSERT INTO cdb_settings VALUES ('listforum', '0');
  9. INSERT INTO cdb_settings VALUES ('ae1', '0');
  10. INSERT INTO cdb_settings VALUES ('ae2', '0');
  11. INSERT INTO cdb_settings VALUES ('ae3', '0');
  12. INSERT INTO cdb_settings VALUES ('ae4', '0');
  13. INSERT INTO cdb_settings VALUES ('ae5', '0');
  14. INSERT INTO cdb_settings VALUES ('ae6', '0');
  15. INSERT INTO cdb_settings VALUES ('ae7', '0');
  16. INSERT INTO cdb_settings VALUES ('ae8', '0');
  17. INSERT INTO cdb_settings VALUES ('ld', '0');
复制代码

注:上述语句来源:
https://discuz.dismall.com/thread-319090-1-1.html

8.其他操作
这些操作很实用的。
这部分我不想写了,
论坛上有现成的。
转过来用一下。
来源:
https://discuz.dismall.com/viewthread.php?tid=211633
1.打开论坛内所有版区 回收站
  1. UPDATE `cdb_forums` SET `recyclebin` = '1' ;
复制代码

2.允许论坛内所有版区斑竹自行添加版规 不支持html
  1. UPDATE `cdb_forums` SET `alloweditrules` = '1';
复制代码

3.允许论坛内所有版区斑竹自行添加版规 支持html
  1. UPDATE `cdb_forums` SET `alloweditrules` = '2';
复制代码

4.论坛内所有版区 按最后回复时间自动关闭 31天
  1. UPDATE `cdb_forums` SET `autoclose` = '-31';
复制代码

5.论坛内所有版区 按发布时间自动关闭 31天
  1. UPDATE `cdb_forums` SET `autoclose` = '31';
复制代码

6.论坛内所有版区 不自动关闭
[quote]UPDATE `cdb_forums` SET `autoclose` = '0';

7.论坛内所有版区 支付宝关闭
  1. UPDATE `cdb_forums` SET `allowtrade` = '0';
复制代码

8.论坛内所有会员 拓展1积分变为100
  1. UPDATE `cdb_members` SET `extcredits1` = '100';
复制代码

9.论坛内所有会员 拓展1积分加100
  1. UPDATE `cdb_members` SET `extcredits1` = extcredits1 +100;
复制代码

10.论坛内所有版区 干扰码关闭
  1. UPDATE `cdb_forums` SET `jammer` = '0';
复制代码

11.论坛内所有版区 干扰码开启
  1. UPDATE `cdb_forums` SET `jammer` = '1';
复制代码

[/quote]

说了这么多,
其实了解下这些东东还是很有用的。
比如安装插件,
就可以判断数据库到底是怎么处理了一下~。
回复

使用道具 举报

 楼主| 羽扇纶巾 发表于 2006-7-11 14:30:18 | 显示全部楼层
参考资料
1.附件里的那个很不错的,
虽然是4.0的,但是有用就行。
2.以下帖子参考了一下,版权归该帖子的作者所有:
https://discuz.dismall.com/thread-263392-1-1.html
https://discuz.dismall.com/thread-319090-1-1.html
https://discuz.dismall.com/viewthread.php?tid=211633
http://www.phpx.com/happy/viewth ... 1%26filter%3Ddigest

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

M55 发表于 2006-7-11 17:21:17 | 显示全部楼层

这个太棒了!

  不错不错!这个太有用了!对新手有相当的帮助!希望所有的新手进来学习学习!

  支持你,加精华啦!

  不可多得~~~~
回复

使用道具 举报

 楼主| 羽扇纶巾 发表于 2006-7-11 17:24:01 | 显示全部楼层
回复

使用道具 举报

278832444 发表于 2006-7-11 17:26:16 | 显示全部楼层
支持下.......
回复

使用道具 举报

M55 发表于 2006-7-11 17:27:01 | 显示全部楼层
原帖由 羽扇纶巾 于 2006-7-11 17:24 发表



知识是拿来用的,如果自己学习了以后还可以让别人也得到学习的机会,那就是一种境界啦!

支持你,努力,相信你一定不错…………
回复

使用道具 举报

zhouc 发表于 2006-7-11 17:29:20 | 显示全部楼层
这个怎能不加精?好
回复

使用道具 举报

xuesharp 发表于 2006-7-11 17:34:33 | 显示全部楼层
谢谢~!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 16:33 , Processed in 0.039061 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表