220 likes | 778 Views
SQL’s Data Definition Language (DDL) . DDL statements define, modify and remove objects from data dictionary tables maintained by the DBMS Whenever you use a DDL statement, the DBMS changes metadata (“data about data”) maintained in the data dictionary
E N D
SQL’s Data Definition Language (DDL) • DDL statements define, modify and remove objects from data dictionary tables maintained by the DBMS • Whenever you use a DDL statement, the DBMS changes metadata (“data about data”) maintained in the data dictionary • Objects that can be defined include: table, view, sequence, index
Oracle’s Data Dictionary • Data dictionary tables maintain data about the structure of databases • Users cannot directly insert, update or delete information in the data dictionary • DDL statements cause the DBMS to add/update or delete information in the data dictionary tables • Oracle’s data dictionary views such as ALL_OBJECTS, ALL_TABLES, ALL_CONSTRAINTS, ALL_COLUMNS can be queried using SELECT statements and contain information about objects you have access to
SQL’s DDL Statements • Objects are defined using the CREATE statement • Some objects can be modified using the ALTER statement • Objects are removed using the DROP statement • Oracle’s data dictionary views such as USER_OBJECTS, USER_TABLES, USER_CONSTRAINTS, USER_COLUMNS, USER_SEQUENCES, USER_INDEXES can be queried using SELECT statements and contain information about objects you have created
Schema • The DataBase Administrator (DBA) has set up your Oracle account with permission for you to create objects in a schema (schema has same name as your account) • A schema (same as DB2’s collection) is a collection of related tables, views, sequences and indexes, i.e. a database
System Datatypes • System-defined datatypes include: • CHAR(n): Fixed length character string often used for Primary and Foreign Key numeric fields and also for codes such as ProgramCode(CPA/CPD/CNS/…); • eg. program_code CHAR(3) • VARCHAR2(n): Variable length character string often used for names; • eg. last_name VARCHAR2(30) • NUMBER(n,r): Real numbers with n digits in total and with r digits to the right of the decimal point; eg hrly_pay_rate NUMBER(5,2) can store hourly pay rates from 0.00 to 999.99 • INTEGER: Integer values up to 2*(10**9) • DATE: dates in the format DD-MON-YYYY or MM/DD/YYYY
Create a Table • You define a table and its columns using the CREATE TABLE statement using the basic format: CREATE TABLE tablename ( column1name datatype(length), column2name datatype(length),… column255name datatype(length)) eg. CREATE TABLE student (id CHAR(9), fname VARCHAR2(30), lname VARCHAR2(30), gpa decimal(2,1) )
Create a Table (ctd) • You can also create a table based on an existing table: CREATE TABLE table1name AS SELECT col1name, …, colnname FROM table2name WHERE … eg. CREATE TABLE honourstudent AS SELECT id, lname FROM student WHERE gpa = 4.0
Change Table Structure • Change structure of a table (i.e. add columns or constraints, remove columns or constraints, change properties of a column) using the ALTER TABLE statement: ALTER TABLE tablename ( ADD col1name datatype(length), DROP col2name, MODIFY col3name datatype(length), MODIFY col4name NOT NULL, … )
ALTER TABLE Examples • ALTER TABLE student ADD (address VARCHAR(40)) • ALTER TABLE student MODIFY (lname VARCHAR2(35) ) • ALTER TABLE student DROP COLUMN gpa
Remove Table from Data Dictionary • Remove table from data dictionary (and also deletes all data in table) DROP TABLE tablename • Deletes all data in table and frees storage but leaves table in data dictionary TRUNCATE TABLE tablename
Constraints • Constraints protect the integrity of data in a database • Constraints are defined on tables and columns in tables • Constraint types: PRIMARY KEY, FOREIGN KEY, NOT NULL, CHECK, UNIQUE • All constraints should be given a name, except for NOT NULLs, so error messages produced will include the name of the constraint violated
Constraints (ctd) • Information about constraints is maintained in the data dictionary and can be queried using the view USER_CONSTRAINTS • Constraints may be defined as part of a CREATE TABLE statement • Constraints may be added, dropped or disabled (but not modified) by using an ALTER TABLE statement
Constraint Example • CREATE TABLE student ( id CHAR(9) PRIMARY KEY, fname VARCHAR(30) NOT NULL, lname VARCHAR2(30) NOT NULL, sem_num SMALLINT, soc_ins CHAR(9) CONSTRAINT soc_ins_uq UNIQUE(soc_ins), prog_code CHAR(3) NOT NULL, CONSTRAINT student_prog_code_fk FOREIGN KEY (prog_code) REFERENCES program(progcode) )
Constraint Examples • ALTER TABLE student ADD CONSTRAINT student_sem_num CHECK (sem_num BETWEEN 1 AND 6) • ALTER TABLE student DROP UNIQUE (soc_ins_uq) • ALTER TABLE student DROP PRIMARY KEY • ALTER TABLE student DROP CONSTRAINT student_sem_num • ALTER TABLE student DISABLE CONSTRAINT student_prog_code_fk