260 likes | 393 Views
Creating Tables, Setting Constraints, and Datatypes. What is a constraint and why do we use it? What is a datatype? What does CHAR mean?. What can this mean?. Language explained. CREATE TABLE tablename (column1 datatype, column2 datatype,
E N D
Creating Tables, Setting Constraints, and Datatypes What is a constraint and why do we use it? What is a datatype? What does CHAR mean?
What can this mean? CS 105 Fall 2006
Language explained CREATE TABLE tablename (column1 datatype, column2 datatype, column3 datatype ); create table means create a table ( begin defining fields with a ( ) end of fields is signaled by ) ; end of statement Add the ) mark! CS 105 Fall 2006
Validation, Constraints NOT NULL means that the column must have a value in each row. If NULL is used, that column may be left empty in a given row. • The database automatically checks that entered data is appropriate to the field type • If the field is a phone number, you can create a constraint that input is to be numbers only and no letters are allowed. • We will not cover "Input Masks" this semester CS 105 Fall 2006
What is a constraint? A constraint is basically a rule associated with a column that the data entered into that column must follow. • "Not Null" -- a column can't be left blank • VARCHAR(30) -- entry of varying length, maximum possible is 30 characters, can be less • See SAMS book, lessons 17 and 22 CS 105 Fall 2006
Design View in SQLyog: Unsigned means than no sign is accepted in front of a number. That means it won’t accept –2, for example. • How do we determine what to accept in each field? • These are the table properties: SAMS Lesson 17 CS 105 Fall 2006
Doing nearly the same thing in SQLyog DemoForClass CREATE TABLE 'DemoForClass' ( ‘FirstName' varchar(12) NOT NULL default'First Name', 'LastName' varchar(12) NOT NULL default'Last Name', 'Year' year(4) NOT NULL default'2006', 'SSN' varchar(11) NOT NULL default'000-00-0000') CS 105 Fall 2006
What the table looks like Note: the name Kingfishersmith was truncated CS 105 Fall 2006
Creating a table in SQLyog CS 105 Fall 2006
Number value in a field PK is for Primary Key Binary is for pictures, etc. No negative numbers allowed, and field will not take letters! CS 105 Fall 2006
Starting to make sense? Table name • CREATE TABLE employee • (ssnCHAR(11) NOT NULL, first VARCHAR(15), • last VARCHAR(20) NOT NULL, • age INT(3), • address VARCHAR(30), • city VARCHAR(20), • state CHAR(2)); Field names: Datatype: *Note: MySQL may change CHAR to VARCHAR in this situation—see the MySQL Manual. CS 105 Fall 2006
Language layout "column1" "datatype" [constraint], ssn CHAR(11) NOT NULL, CS 105 Fall 2006
Default value in SQL CREATE TABLE tablestudents (FirstName VARCHAR (12) DEFAULT‘First Name’ NOT NULL (etc.) CS 105 Fall 2006
Adding Items Can Be Tricky CS 105 Fall 2006
NULL Values and calculations • If you add a value to another value that is NULL, the answer that MySQL gives you is NULL! The same thing sometimes happens in our Compass GradeBook—if a score is missing, sometimes the total score is not computed. It all depends on what software you use. CS 105 Fall 2006
Alter Table – Using a Query CS 105 Fall 2006
Variation 1 of the Insert Statement • If you know the order of the fields, you don’t have to specify the field names INSERT INTO Customers VALUES ('1000000001', 'Village Toys', '200 Maple Lane', 'Detroit', 'MI', '44444', 'USA', 'John Smith', 'sales@villagetoys.com'); CS 105 Fall 2006
Variation 2 of Insert Statement • You don’t have to insert a value for every field, unless it is a required (NOT NULL, PRIMARY KEY) field INSERT INTO Customers (cust_id, cust_name, cust_email) VALUES ('1000000001', 'Village Toys', 'sales@villagetoys.com'); CS 105 Fall 2006
Update Statement • See page 131 and 132 of SAM’s book • Modifies data in a table UPDATE players SET firstname='fred' WHERE ssn='899-98-9989' CS 105 Fall 2006
Before running Update CS 105 Fall 2006
After running the statement CS 105 Fall 2006
The Primary Key specifies the field that uniquely identifies each record in the Table Primary Key as shown in old client CS 105 Fall 2006
Setting a Primary Key • A primary key is a column (field) that uniquely identifies the rest of the data in any given row. • More than one field can be combined to establish a primary key (e.g., Deanne + Smith rather than Smith) • (MySQL may give you trouble, but trust us) CS 105 Fall 2006
Datatypes Datatypes specify what the type of data can be for that particular field. • A field called "Last_Name“ should have a "VARCHAR" (variable-length character) datatype. • A field called “SSN” should have a “char” datatype--that would constrain the size to exactly 9 or 11 characters. CS 105 Fall 2006
Popular datatypes – see Appendix D • char(size)Fixed-length character string. Size is specified in parenthesis. Max 255 bytes. • varchar(size)Variable-length character string. Max size is specified in parenthesis. • TEXT – a character string that does not have a fixed length CS 105 Fall 2006
More datatypes • number(size) • unsigned (no negative numbers) • Tinyint (integer) • This is very complicated—do not worry about it for our course. For details see http://www.mysql.com/doc/ • date Date value • Timestamp ---YYYY-MM-DD CS 105 Fall 2006