Creating and Modifying Data and Tables¶
Objective¶
Create new tables and edit existing records
Key Points¶
Use
CREATE
andDROP
to create and delete tables.Use
INSERT
to add data.Use
UPDATE
to modify existing data.Use
DELETE
to remove data.It is simpler and safer to modify data when every record has a unique primary key.
Do not create dangling references by deleting records that other records refer to.
CREATE TABLE¶
So far, we’ve only gotten information out of our database, but we want to also be able to edit the data, as well.
We’ll start by creating a new table with CREATE TABLE
.
Each table has a schema with which it was created. The command
below creates a blank table.
CREATE TABLE Extra(name text, minutes integer, measure real);
The fields in our new table will have different data types specified
after the name of the field. text
fields take character values.
integer
fields consist of positive and negative whole numbers (and 0).
real
fields contain numerical values with decimal points. There are also
BLOB
fields, which stand for binary large objects, such as an image.
If you check .schema
we can see our new table here.
.schema
CREATE TABLE Person (id text, personal text, family text);
CREATE TABLE Site (name text, lat real, long real);
CREATE TABLE Survey (taken integer, person text, quant text, reading real);
CREATE TABLE Visited (id integer, site text, dated text);
CREATE TABLE Extra(name text, minutes integer, measure real);
DROP TABLE¶
To remove a table, we can use DROP TABLE
.
DROP TABLE Extra;
.schema
CREATE TABLE Person (id text, personal text, family text);
CREATE TABLE Site (name text, lat real, long real);
CREATE TABLE Survey (taken integer, person text, quant text, reading real);
CREATE TABLE Visited (id integer, site text, dated text);
Make sure when you’re deleting data that you’re not removing primary keys that other references depend on. Also make sure to back up your database if there are files you would like to keep.
Primary keys¶
When creating a table, we can also specify a field to be a primary key.
CREATE TABLE Extra(name text, minutes integer, measure real
primary key (name));
Editing tables¶
We can also add a row to a table too with INSERT INTO
.
INSERT INTO SITE (name, lat, long) VALUES ('DR-5', -49.85, -128.57);
We can take values from one table and put them into another table, as well.
CREATE TABLE JustLatLong (lat real, long real);
INSERT INTO JustLatLon SELECT lat, long FROM Site;
We can modify values with UPDATE
and SET
. One way to do this is with
conditions. Don’t forget to include WHERE
, else you will update
all values.
UPDATE Site SET lat=-47.87, long=-122.0 WHERE name='DR-5';
It can be a good idea to use a filter to check your query before
running UPDATE
to avoid modifying the database in unwanted ways.
We can use DELETE
to delete rows in a similar way. Make sure
records you delete are not referred to by other tables.
DELETE FROM Person WHERE id='danforth';