PHP skapar MySQL-databas

Databasen innehåller en eller flera tabeller.

Skapa databas

CREATE DATABASE-satsen används för att skapa databaser i MySQL.

Syntaks

CREATE DATABASE databasnamn

För att PHP ska kunna utföra ovanstående sats måste vi använda mysql_query() -funktionen. Denna funktion används för att skicka frågor eller kommandon till en MySQL-anslutning.

例子

I följande exempel skapar vi en databas med namnet "my_db":

<?php
$con = mysql_connect("localhost","peter","abc123");
om (!$con)
  {
  dö (": kunde inte ansluta: ". mysql_error());
  }
om (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Databas skapad";
  }
annars
  {
  echo "Fel vid skapande av databas: " . mysql_error();
  }
mysql_close($con);
?>

Skapa tabell

CREATE TABLE används för att skapa databastabeller i MySQL.

Syntaks

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
......
)

För att utföra detta kommando måste jag lägga till CREATE TABLE-satsen till mysql_query() -funktionen.

例子

Nedanstående exempel visar hur man skapar en tabell med namnet "Persons", som har tre kolumner. Kolonnenamn är "FirstName", "LastName" och "Age":

<?php
$con = mysql_connect("localhost","peter","abc123");
om (!$con)
  {
  dö (": kunde inte ansluta: ". mysql_error());
  }
// Skapa databas
om (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Databas skapad";
  }
annars
  {
  echo "Fel vid skapande av databas: " . mysql_error();
  }
// Skapa tabell i my_db databas
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons 
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);
mysql_close($con);
?>

Viktigt:Viktigt: Innan du skapar en tabell måste du först välja databas. Välj databas med mysql_select_db() funktionen.

Anmärkning:När du skapar ett varchar-fält i databasen måste du specificera fältets maxlängd, till exempel: varchar(15).

MySQL datatyper

Följande MySQL datatyper som kan användas:

numeriska typer 描述
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
endast stödjer heltal. Ställer in maxvärdet för siffror i size-argumentet.
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

stödjer tal med decimaler.

ställer in maxvärdet för siffror i size-argumentet. Ställer in maxvärdet för decimaler till höger om decimaltecknet i d-argumentet.

textdata typ 描述
char(size)

stödjer strängar med fast längd. (Kan innehålla bokstäver, siffror och specialtecken).

ställer in fast längd i size-argumentet.

varchar(size)

stödjer strängar med variabel längd. (Kan innehålla bokstäver, siffror och specialtecken).

ställer in maxlängd i size-argumentet.

tinytext stödjer strängar med variabel längd, maxlängd är 255 tecken.
  • text
  • blob
stödjer strängar med variabel längd, maxlängd är 65535 tecken.
  • mediumtext
  • mediumblob
stödjer strängar med variabel längd, maxlängd är 16777215 tecken.
  • longtext
  • longblob
stödjer strängar med variabel längd, maxlängd är 4294967295 tecken.
datumdata typ 描述
  • datum(yyyy-mm-dd)
  • datetime(yyyy-mm-dd hh:mm:ss)
  • tidsstämpel(yyyymmddhhmmss)
  • tid(hh:mm:ss)
支持日期或时间
杂项数据类型 描述
enum(value1,value2,ect) ENUM 是 ENUMERATED 列表的缩写。可以在括号中存放最多 65535 个值。
set SET 与 ENUM 相似。但是,SET 可拥有最多 64 个列表项目,并可存放不止一个 choice

主键和自动递增字段

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

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

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

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

例子

$sql = "CREATE TABLE Persons 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);