Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Chapter 2: Creating and Modifying Database Tables.

Similar presentations


Presentation on theme: "1 Chapter 2: Creating and Modifying Database Tables."— Presentation transcript:

1 1 Chapter 2: Creating and Modifying Database Tables

2 2 Database Objects An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views Stored programs Etc.

3 3  Query: command to perform operation on database object  Create  Modify  View  Delete  Structured Query Language (SQL)  Standard query language for relational databases Database Queries

4 4 SQL Command Types Data Definition Language (DDL) Used to create and modify the structure of database objects Data Manipulation Language (DML) Used to insert, update, delete, and view database data

5 5 DDL Commands Used to create and modify the structure of database objects CREATE ALTER DROP DDL commands execute as soon as they are issued, and do not need to be explicitly saved

6 6 DML Commands Used to insert, view, and modify database data INSERT UPDATE DELETE SELECT DML commands need to be explicitly saved or rolled back COMMIT ROLLBACK

7 7 User Accounts Each Oracle database user has a user schema Area in the database where the user’s database objects are stored Identified by a unique username and protected by a password Each user schema is granted specific privileges

8 8 Types of Database Privileges System Privileges Control the operations that the user can perform within the database Connecting to the database (Create Session), creating new tables, shutting down the database, etc. Object Privileges Granted on individual database objects Controls operations that a user can perform on a specific object (insert data, delete data, etc.) When you create an object in your user schema, you can then grant object privileges on that object to other database users

9 9 Oracle Naming Standard Oracle database objects must adhere to the Oracle Naming Standard 1 to 30 characters long Must begin with a character Can contain characters, numbers, and the symbols $, _, and #

10 10  To create a table, you must specify:  Table name  Field names  Field data types  Field sizes  Constraints Defining Database Tables

11 11  Must follow the Oracle Naming Standard  Each table in a user schema must have a unique name within that user schema  Each field in a table must have a unique name within that table Table and Field Names

12 12  Data type: specifies type of data stored in a field  Date, character, number, etc.  Uses  Error checking  Efficient use of storage space Oracle Data Types

13 13  VARCHAR2  Variable-length character strings  Maximum of 4,000 characters  Must specify maximum width allowed  No trailing blank spaces are added  Example declaration: student_name VARCHAR2(30) Oracle Character Data Types

14 14  CHAR  Fixed-length character data  Maximum size 2000 characters  Must specify maximum width allowed  Adds trailing blank spaces to pad width  Example declaration: student_gender CHAR(1) Character Data Types

15 15  NCHAR  Supports 16-digit binary character codes  Used for alternate alphabets Character Data Types

16 16  NUMBER  stores values between 10 -130 and 10 126  General declaration format: variable_name NUMBER(precision, scale) Number Data Type

17 17  Number type (integer, fixed point, floating point) specified by precision and scale  Precision: total number of digits on either side of the decimal point  Scale: number of digits to right of decimal point NUMBER Data Types

18 18  Whole number with no digits to right of decimal point  Precision is maximum width  Scale is omitted  Sample declaration: s_age NUMBER (2) Integer Numbers

19 19  Contain a specific number of decimal places  Precision is maximum width  Scale is number of decimal places  Sample declaration: item_price NUMBER(5, 2) Fixed Point Numbers

20 20  Contain a variable number of decimal places  Precision and scale are omitted  Sample declaration: s_GPA NUMBER Floating Point Numbers

21 21  DATE  Stores dates from 1/1/4712 BC to 12/31/4712 AD  Stores both a date and time component  Default date format: DD-MON-YY HH:MI:SS AM  example: 05-JUN-03 12:00:00 AM  Sample declaration: s_dob DATE Date Data Type

22 22  If no time value is given when a new date is inserted, default value is 12:00:00 AM  If no date value is given when a new time is inserted, default date is first day of current month Specifying Date and Time Values

23 23  The same as Date DT, but it stores also fractional seconds.  Field Timestamp(Fr_Se_Precision)  E.g: ship_dt Timestamp(2)  Fractional Seconds Precision default value is 6 (If omitted). TIMESTAMP Data Type

24 24  Field Interval Year(Y_Pr) To Month.  Y_Pr: Year Precision(Default: 6).  E.g: elapsed Interval Year(2) To Month.  Possible Values: +02-11 :add 2 years and 11 months. -11-4:subtract 11 years and 4 months. Interval Year to Month Data Type

25 25  Field Interval Day(D_Pr) To Second(Fr_Se_pr).  D_Pr: Day Precision(Default : 2).  Fr_Se_Pr: Fractional Seconds Precision (Default : 6).  Possible value: -04 03:20:32.00 (Days Hours:Minutes:Seconds.Fractions) Interval Day to Second Data Type

26 26 Large Object (LOB) Data Types Binary Large Object (BLOB) Stores up to 4 GB of binary data Character Large Object (CLOB) Stores up to 4 GB of character data BFILE Stores a reference to a binary file maintained in the operating system NCLOB Character LOB that supports 16-bit character code

27 27 Declaring LOB Data Fields Item size is not specified Examples: item_image BLOB item_image BFILE

28 28  Syntax: CREATE TABLE table_name (fieldname1 datatype, fieldname2 datatype, …);  Example: CREATE TABLE my_students (s_id NUMBER(6), s_name VARCHAR2(30), s_dob DATE, s_class CHAR(2)); Creating a Database Table

29 29 Constraints Rules that restrict the values that can be inserted into a field Types of constraints Integrity: define primary and foreign keys Value: specify values or ranges of values that can be inserted

30 30 Constraint Levels Table constraint Restricts the value of a field with respect to all other table records Example: primary key value must be unique for each record Column constraint Restricts values in a specific column Example: values in an S_GENDER field must be ‘M’ or ‘F’

31 31  Internal name used by DBMS to identify the constraint  Each constraint name in a user schema must be unique  If you do not name a constraint, the system will automatically generate an unintuitive name Constraint Names

32 32  Constraint naming convention: tablename_fieldname_constraintID  Constraint ID values:  Primary key: pk  Foreign key: fk  Check condition: cc  Not NULL: nn  Unique: uk  Example constraint name: my_students_s_id_pk Constraint Names

33 33  Table-level  Defining a primary key: CONSTRAINT constraint_name PRIMARY KEY  Example: s_id NUMBER(6) CONSTRAINT student_s_id_pk PRIMARY KEY Primary Key Constraints

34 34  Can be defined when field is declared Primary Key Constraints

35 35  Can also be defined after all table field definitions are completed Primary Key Constraints

36 36  Syntax: CONSTRAINT constraint_name PRIMARY KEY (field1, field2)  Must be defined after fields that compose key are defined Composite Primary Keys

37 37  Table-level  Can only be defined after field is defined as a primary key in another table  Syntax: CONSTRAINT constraint_name REFERENCES primary_key_table_name (field_name) Foreign Key Constraints

38 38  Can be defined when field is declared Foreign Key Constraints

39 39  Can also be defined after all table field definitions are completed Foreign Key Constraints

40 40  Column-level  Restricts data values that can be inserted in a field  In general, avoid value constraints because they make the database very inflexible Value Constraints

41 41  Check condition: restricts to specific values  Example: s_gender (M or F) CONSTRAINT my_students_s_gender_cc CHECK (s_gender = ‘M’) OR (s_gender = ‘F’)  Not NULL: specifies that a field cannot be NULL  Example: CONSTRAINT my_students_s_dob_nn NOT NULL Types of Value Constraints

42 42  Default: specifies a default value that is inserted automatically  Example: s_state CHAR(2) DEFAULT ‘WI’  Unique  Table constraint  Specifies that a non-primary key field must have a unique value CONSTRAINT consultant_c_email_uk UNIQUE (c_email) Types of Value Constraints

43 43  Oracle SQL command line utility for issuing SQL commands  Starting SQL*Plus SQL*Plus

44 44  All commands must be terminated with a semicolon  Use a text editor and copy and paste commands  Character data is case sensitive and must be in single quotes ‘M’ ‘Sarah’ Using SQL*Plus

45 45  Type exit at SQL> prompt or  Click Close button on SQL*Plus window Exiting SQL*Plus

46 46  Ora.hlp file  Oracle Technology Network (OTN)  http://otn.oracle.com Oracle Help Resources

47 47  Viewing a table’s structure DESCRIBE table_name; Viewing Table Information

48 48 Oracle Data Dictionary Contains tables that describe the database structure Is in the SYSTEM user schema Is automatically updated as users create and modify tables Cannot be updated directly Contains views that allow users to retrieve information about the database structure

49 49 Data Dictionary Views Views present data in different formats depending on the privileges of the user USER: shows all objects belonging to the current user ALL: shows all objects belonging to the current user, as well as objects current user has privileges to manipulate DBA: allows users with DBA privileges to view objects of all database users

50 50 Querying the Data Dictionary Views Syntax: SELECT field1, field2, … FROM privilege_viewname;

51 51 Summary of Oracle Data Dictionary Views OBJECTSAll database objects TABLESDatabase tables INDEXESTable indexes created to improve query performance VIEWSDatabase views SEQUENCESSequences created to automatically generate surrogate key values USERSDatabase users CONSTRAINTSTable constraints CONS_CONSTRAINTSTable columns that have constraints IND_COLUMNSIndexed columns TAB_COLUMNSAll table columns

52 52  Unrestricted actions  Renaming tables  Adding new columns  Increasing column sizes  Dropping columns  Dropping constraints Modifying Tables

53 53  Restricted actions  Dropping tables  Only allowed if table does not contain any fields that are referenced as foreign keys, or if foreign key constraints are dropped  Changing a column’s data specification  Only allowed if existing data is compatible with new data specification  Decreasing column sizes  Only allowed if column does not contain any data  Adding constraints  Only allowed if existing data meets requirements of new constraint Modifying Tables

54 54 Altering Tables Adding a new field: ALTER TABLE tablename ADD (fieldname field_specification);

55 55 Altering Tables Modifying an existing field: ALTER TABLE tablename MODIFY (fieldname new_field_specification);

56 56 Altering Tables Deleting an existing field: ALTER TABLE tablename DROP COLUMN fieldname;

57 57 Altering Tables Enabling and Disabling Constraints: ALTER TABLE tablename Enable|Disable CONSTRAINT constraint_name; E.g: Alter Table faculty Disable Constraint faculty_f_id_fk;

58 58 Deleting Tables Syntax to delete table if no table fields are referenced as foreign keys: DROP TABLE tablename;  Syntax to delete table and constraints if table contains fields that are referenced as foreign keys: DROP TABLE tablename CASCADE CONSTRAINTS;


Download ppt "1 Chapter 2: Creating and Modifying Database Tables."

Similar presentations


Ads by Google