MYSQL个人学习笔记(一)

  • 内容
  • 评论
  • 相关

1.首先是创建表,它的语法比较严厉,表的最后一列的逗号千万不能加,不然出错,将不能创建表:
w3school的示例:
$sql = "CREATE TABLE Persons
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";

如果在Age int后增加逗号就不能创建了;

2.表的编码问题。
现在都流行utf8编码,所以创建表的时候最好加上TYPE=MyISAM CHARACTER SET=utf8,上面的例子就修改为:

$sql = "CREATE TABLE Persons
(
FirstName varchar(15),
LastName varchar(15),
Age int
)TYPE=MyISAM CHARACTER SET=utf8;";

另外在执行查询之前,最好都加上下面几句(因为网络查下来啥都有,所以都写下来,应该不出事吧):

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $con);
mysql_query("set names 'utf8'");
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER_SET_CLIENT=utf8');
mysql_query('SET CHARACTER_SET_RESULTS=utf8');

3.主键与AUTO_INCREMENT的关系
在w3school上介绍如下:

主键和自动递增字段

每个表都应有一个主键字段。

主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。

主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。

下面的例子把 personID 字段设置为主键字段。主键字段通常是 ID 号,且通常使用 AUTO_INCREMENT 设置。AUTO_INCREMENT 会在新纪录被添加时逐一增加该字段的值。要确保主键字段不为空,我们必须向该字段添加 NOT NULL 设置。

但其实忽略了一条很重要的规则:
MySQL表中只能有一个AUTO_INCREMENT字段,而且这个字段必须被定义为键。除了字段的约束,MySQL也允许表级的约束,比如主键和外键、索引和惟一约束。
这就解释了我开始为什么建表时把一个其他的字段作为主键,把id设置为AUTO_INCREMENT一直不成功的原因了。

今天就学习到这里了,下次继续整理归纳吧。

评论

2条评论
  1. Gravatar 头像

    回复

    这么久不更新,忙得很啊

    • Gravatar 头像

      OCC 回复

      @威 哇,还不知道有人等我更新?受宠若惊啊,马上准备一下

进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据