Skip to main content

Creating Database Tables

After the database structure is designed and the database has been created, individual tables can be added. Using accurate assignment of data types and their associated options, tables can be added to the database.
 
The command syntax is shown below, including the various column and table options;
 
CREATE TABLE <table> ( <column name> <column type> [<column options>],[<column name> <column type>  [<column options>],…,] [<index list>])[<table options> ];
 

Example:
 
mysql> CREATE TABLE CountryLanguage (
         ->  CountryCode CHAR(3) NOT NULL,
         ->  Language CHAR(30) NOT NULL,
         ->  IsOfficial ENUM('True', 'False') NOT NULL DEFAULT 'False',
         ->  Percentage FLOAT(3,1) NOT NULL,
         ->  PRIMARY KEY(Country, Language)
         ->  )ENGINE = MyISAM COMMENT='Lists Language Spoken';
 
A line-by-line description of the above  CREATE TABLE statement:

1.   The table being created will be given the name  CountryLanguage - this is the beginning       of a grouping of column definitions that ends on the line 7 beginning with ")  ENGINE = ..." 

2.   CountryCode --column in the table with a datatype of Char (size of 3) that cannot have an unknown or NULL value, and the comma ( ,) means continue defining columns
 
3.   Language--another column of a datatype  CHAR and a length of 30 that also can not have an  unknown or NULL value 
 
4.   IsOfficial --column name  ENUM is a datatype with only the values  of True or False ('True' , 'False') and  NOT NULL  means each row must be true or false no t (unknown) If the value is unknown it will  list as false by the phrase DEFAULT 'False' 
 
5.   Percentage —column with a datatype of FLOAT  and values assigned at 3 total digits with 1 digit to the right of the decimal, cannot have  NULL values
 
6.   PRIMARY KEY--defines the type of index and what columns it applies, in this case a combo of both Country and Language to define a uniq ue identifier of each row or each entity
 
7.   )  is the closing of a group of definitions describing the column names and index, ENGINE defines the pluggable storage engine used to manage the data and retrieve the data. (MyISAM in this case), COMMENT is phrases used by the person defining the table to explain the table (the purpose is to list the languages used in each given country), the ;  means execute this command and create the table CountryLanguage.

Comments

Popular posts from this blog

PHP INTRODUCTION

                     PHP  (recursive acronym for  PHP: Hypertext Preprocessor ) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. PHP stands for  P HP:  H ypertext  P reprocessor PHP is a server-side scripting language, like ASP PHP scripts are executed on the server PHP supports many databases (MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC, etc.) PHP is an open source software PHP is free to download and use Why PHP? PHP runs on different platforms (Windows, Linux, Unix, etc.) PHP is compatible with almost all servers used today (Apache, IIS, etc.) PHP is FREE to download from the official PHP resource:  www.php.net PHP is easy to learn and runs efficiently on the server side What can PHP do? Anything. PHP is mainly focused on server-side scripting, so you can...

Self Joins

A table name is always ambiguous when table is joined to itself using a self-join. For example, the Country table in the world database contains an IndepYear column indicating the year in which each country achieved independence. To find all countries that have the same year of independence as some given country, a self-join can be used. However, the query cannot be written like this: mysql> SELECT IndepYear, Name, Name -> FROM Country JOIN Country -> ON IndepYear = IndepYear AND Name = 'Qatar'; ERROR 1066 (42000): Not unique table/alias: 'Country' Furthermore, the ambiguity cannot be removed from column references by preceding them with table name qualifiers because the names remain identical: mysql> SELECT Country.IndepYear, Country.Name, Country.Name -> FROM Country JOIN Country -> ON Country.IndepYear = Country.IndepYear -> AND Country.Name = 'Qatar'; ERROR 1066 (42000): Not unique table/alias: 'Country' It ...