Files
freeCodeCamp/guide/english/sql/sql-create-table/index.md
2019-06-28 00:21:21 -07:00

120 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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, its 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.
Well 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".
Well create a Student Table.
The steps will be:
1. make sure we dont 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. <br/>
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.<br/>
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
* Youll 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
* <a href='https://dev.mysql.com/doc/refman/5.7/en/alter-table.html' target='_blank' rel='nofollow'>manual page</a>
* <a href='https://dev.mysql.com/doc/refman/5.7/en/alter-table-examples.html' target='_blank' rel='nofollow'>examples from manual</a>
### SQL Server documentation
* <a href='https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql' target='_blank' rel='nofollow'>Microsoft Docs</a>