--- title: SQL Create Table --- # SQL CREATE TABLE ## Introduction This guide is an overview to the basics of the SQL `CREATE TABLE` functions. We will be using MySQL for all examples throughout these freeCodeCamp SQL guides. MySQL is a used frequently on websites for the backend database, 2) it's free, and is fun and easy to use. ## Covered in this Guide * Creating a schema, the container for all our database objects. * Create a table so we have something to alter. * Creating a table by importing a CSV file and altering that table * Creating a table using the MySQL workbench tool We do most of this work with SQL statements in the MySQL workbench scripting tool. We will also see how to Create a table using the workbench interface instead of with SQL statements. ## High level structure of a Relational Database 1. Highest level; The Database; the database system installation. In this case, it’s MySQL. Called “Local instance MySQL Router” in the screen shots above. 2. Next is a Schema; a container for the objects needed to managed data in a relational database system. 3. Objects we create (tables, indexes, stored procedures, functions) to manage the system and its data ## Creating a MySQL schema The schema is a container for a the objects required to manage the data for a given subject or process. We show examples as we progress in this guide. We’ll create the schema for our learning and testing using the SQL command; ```sql create database fCC_alterTableGuide; ``` * ## Creating a table, add test data with "insert". We’ll create a Student Table. The steps will be: 1. make sure we don’t have the table already 2. create the table 3. insert the test data. Data Types: the student name is a character field limited to 90 characters.
The student ID is a number (integer) (range of -2147483648 to 2147483647). This will be the primary key for the table and will auto increment when a record is added.
There will also be two "time-stamp" fields to play with as well. Let's create a student table statement. ```sql create table student( studentId int(11) not null primary key , FullName varchar(90), sat_score int(4), ts1 timestamp, ts2 timestamp default current_timestamp, programOfStudy varchar(200) ); ``` Now to insert some data and see what our new table looks like with records in it. ```sql insert into student(studentId, FullName,sat_score,ts1,ts2,programOfStudy) values(1, "Lorah sey", 400 ,now(),now(),"programming"); --to display records in table select * from student; ``` Result : ```text +-----------+----------------+-----------+---------------------+----------------------+----------------+ | studentId | FullName | sat_score | ts1 | ts2 | programOfStudy | +-----------+----------------+-----------+---------------------+----------------------+----------------+ | 1 | Lorah sey | 400 | 2019-04-28 13:55:11 | 2019-04-28 13:55:11 | programming | +-----------+----------------+-----------+---------------------+----------------------+----------------+ ``` * ## Create a table with the MySql Workbench * Right click on the "Tables" under the schema you want the new file placed in. Select Create Table. * Complete the form as desired and click Apply * ## Create Table as Select (CTAS) A quick way to create a copy of a table, including data is to create table as select. ```sql CREATE TABLE my_table as (SELECT * FROM orig_tbl); ``` * ## Create and populate a table by importing a CSV file * Right click on the "Tables" under the schema you want the new file placed in. Select Table Data Import. * Select the CSV file to import and click NEXT. * Usually you create a new table from the data, select the options desired and click NEXT. * Adjust the data types as needed and click NEXT * Click NEXT to import the data into the table * You’ll see completion status, review and click FINISH ## Other Material There is a lot more detail to cover on this topic so install MySQL and have fun! ### Where to get MySQL Try [this download for Windows users[(https://dev.mysql.com/downloads/windows/) ### MySQL documentation * manual page * examples from manual ### SQL Server documentation * Microsoft Docs