在给定的文件中,我们可以看到有关MySQL多表联合查询的知识点。文件包含了创建和操作MySQL数据库表的SQL语句,接着是使用INSERT语句向表中插入数据的示例,最后是一些使用PHP通过MySQL扩展连接数据库进行操作的PHP代码片段。下面将详细解释这些知识点。
创建表(CREATE TABLE):
MySQL中创建表的基本语句是CREATE TABLE,通过该语句我们可以定义表的名称、列以及每列的数据类型。创建表时可以指定主键(PRIMARY KEY),这是表中每条记录的唯一标识符,保证了数据的唯一性。
例如:
```sql
CREATE TABLE IF NOT EXISTS contact(
contact_id int(11) NOT NULL AUTO_INCREMENT,
user_name varchar(255),
nom varchar(255),
prenom varchar(255),
mail varchar(64),
passcode char(64),
PRIMARY KEY (contact_id)
);
```
这段代码创建了一个名为contact的表,其中包含用户信息,每个字段的数据类型都明确了。如果contact表不存在,则会被创建。contact_id列是自增的主键列。
联合查询(JOIN):
在数据库操作中,联合查询是指将多个表的数据根据一定的条件连接起来,以形成一个结果集。在文件中,我们可以看到使用了INNER JOIN来连接表。联合查询可以帮助我们获取跨表的复杂数据信息。
例如:
```sql
SELECT c.contact_id, d.droit_id, d.droit
FROM contact c
INNER JOIN contactdroit cd ON c.contact_id = cd.contact_id
INNER JOIN droit d ON cd.droit_id = d.droit_id;
```
此查询将contact表、contactdroit表和droit表连接起来,根据contact_id和droit_id这两个字段的相同值来联合这些表,并返回指定的字段信息。
插入数据(INSERT INTO):
在创建表之后,通常需要向表中插入数据。INSERT INTO语句用于向数据库表中添加新的数据行。该语句包括指定要填充数据的列名和在values关键字后面列出要插入的值。
例如:
```sql
INSERT INTO contact(user_name, nom, prenom, mail, passcode)
VALUES ('sa', 'se', 'sf', '***', '123');
```
这条语句将一个新用户的信息插入到contact表中。每个值都被插入到对应的列中。
通过PHP连接MySQL数据库:
在文件的PHP代码段中,展示了如何通过PHP脚本使用MySQL扩展与MySQL数据库建立连接,并执行插入数据的操作。首先使用mysql_connect函数建立连接,然后使用mysql_select_db选择数据库。之后,通过构造INSERT语句插入数据。
例如:
```php
$conn=mysql_connect("localhost","charles","charles");
mysql_select_db("test");
$query="INSERT INTO contact(user_name, nom, prenom, mail, passcode) values('sa', 'se', 'sf', '***', '123')";
$result=mysql_query($query) or die("insert contact failed: ".mysql_error());
```
这段PHP代码首先连接到本地服务器上的MySQL数据库,然后尝试向contact表中插入一行新数据。如果插入失败,则会输出错误信息。
需要注意的是,在实际开发中,随着PHP的更新,不再推荐使用mysql_*函数,因为它们在PHP 7.0版本后已被废弃,建议使用mysqli或PDO等更为安全、功能强大的数据库操作方式。
从上面的内容中,我们可以了解到创建表、联合查询、插入数据以及如何在PHP中操作MySQL数据库的基本知识点。这些知识点在实际的数据库操作和Web开发中十分常见,并且对于数据库设计和开发具有基础性的作用。