* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Chapter 2
Microsoft SQL Server wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Ingres (database) wikipedia , lookup
Clusterpoint wikipedia , lookup
Functional Database Model wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Relational model wikipedia , lookup
Guide to Oracle 10g Chapter 2: Creating and Modifying Database Tables Guide to Oracle 10g 1 Database Objects   An Oracle database consists of multiple user accounts Each user account owns database objects     Tables Views Stored programs Etc. Guide to Oracle 10g 2 Database Queries  Query: command to perform operation on database object  Create  Modify  View  Delete  Structured Query Language (SQL)  Standard query language for relational databases Guide to Oracle 10g 3 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 Guide to Oracle 10g 4 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 Guide to Oracle 10g 5 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 Guide to Oracle 10g 6 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 Guide to Oracle 10g 7 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 Guide to Oracle 10g 8 Break Time: SQL Plus   Oracle SQL command line utility for issuing SQL commands Starting SQL Plus LOGON to YOUR Oracle Account Guide to Oracle 10g 9 How to Access Your Oracle Account 1. Click the START button, point to Programs 2. Select Oracle –Oracle10g, then 3. Click Application Development, then 4. Select SQL PLUS User Name: Password: Host string: Guide to Oracle 10g 10 Creating New User Accounts   Done by DBA Syntax: CREATE username IDENTIFIED BY password; Guide to Oracle 10g 11 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 # Guide to Oracle 10g 12 Defining Database Tables  To create a table, you must specify:  Table name  Field names  Field data types  Field sizes  Constraints Guide to Oracle 10g 13 Table and Field Names  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 Guide to Oracle 10g 14 Creating a Table CREATE TABLE tablename (fieldname1 data_type, (fieldname2 data_type, …) Guide to Oracle 10g 15 Oracle Data Types  Data type: specifies type of data stored in a field  Date, character, number.  LONG, RAW, LONG RAW, BLOB  Uses  Error checking  Efficient use of storage space Guide to Oracle 10g 16 Oracle Character Data Types  VARCHAR2 columnname VARCHAR2(max_size) Variable-length character strings Max_size can be between 1 and 4,000 characters Must specify the size No trailing blank spaces are added If more than max_size data is inserted, an error occurs.  Example declaration: student_name VARCHAR2(30)      Guide to Oracle 10g 17 Character Data Types  CHAR columnname CHAR(max_size) Fixed-length character data Max_size can be between 1 and 2000 characters Max_size is optional. Default is 1. Adds trailing blank spaces to pad width If more than max_size data is inserted, an error occurs.  Example declaration: student_gender CHAR(2)      Guide to Oracle 10g 18 Character Subtypes Examples: VARCHAR2(5) ‘Smith’ or ‘Smi’ CHAR(5) ‘Smith’ or ‘Smi Guide to Oracle 10g ’ 19 Question: Which query will possibly generate student information? s_last VARCHAR2(15); s_last CHAR(15); SELECT s_last, s_first, s_address FROM student WHERE s_last = ‘Smith’; SELECT s_last, s_first, s_address FROM student WHERE s_last = ‘Smith’;   What data type should be used if there is any chance that all column spaces will NOT be filled? Answer: VARCHAR2 Guide to Oracle 10g 20 Character Data Types  3. NVARCHAR2 and NCHAR   Analogous to VARCHAR2 and CHAR but use Unicode rather than ASCII Used to hold character data in languages other than English (Japanese). Guide to Oracle 10g 21 Number Data Type  NUMBER  stores negative, positive, fixed, and floating point numbers values between 10-130 and 10126  General declaration format: variable_name NUMBER(precision, scale) Guide to Oracle 10g 22 NUMBER Data Types  Number type (integer, fixed point, floating point) specified by precision and scale  Precision: total number of digits on either side of the decimal point. It does not include the decimal point itself or any commas or any formatting symbols.  Scale: number of digits to right of decimal point Guide to Oracle 10g 23 Integer Numbers  Whole number with no digits to right of decimal point  Precision is maximum width  Scale is omitted  Sample declaration: s_age NUMBER (2) Guide to Oracle 10g 24 Fixed Point Numbers  Contain a specific number of decimal places  Precision is maximum width  Scale is number of decimal places  Sample declaration: item_price NUMBER(5, 2)  259.99 33.89 (decimal point is not included) Guide to Oracle 10g 25 Floating Point Numbers  Contain a variable number of decimal places  Precision and scale are omitted  Sample declaration: s_GPA NUMBER Guide to Oracle 10g 26 Date Data Type  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 Guide to Oracle 10g 27 Specifying Date and Time Values  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 Guide to Oracle 10g 28 TIMESTAMP Data Type  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). Guide to Oracle 10g 29 Interval Year to Month Data Type  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 to a known date. -11-4:subtract 11 years and 4 months. Guide to Oracle 10g 30 Interval Day to Second Data Type  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) Guide to Oracle 10g 31 Large Object (LOB) Data Types  Binary Large Object (BLOB)   Character Large Object (CLOB)   Stores up to 4 GB of character data BFILE   Stores up to 4 GB of binary data Stores a reference to a binary file maintained in the operating system NCLOB  Character LOB that supports 16-bit character code Guide to Oracle 10g 32 6. Large Object (LOB) Data Types Ex: f_image BLOB; Guide to Oracle 10g 33 Declaring LOB Data Fields  Item size is not specified Examples: item_image BLOB item_image BFILE  Guide to Oracle 10g 34 Creating a Database Table  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)); Guide to Oracle 10g 35 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 Guide to Oracle 10g 36 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’ Guide to Oracle 10g 37 Constraint Names  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 starts with SYS_Cn. n is a numeric value. Guide to Oracle 10g 38 Constraint Names  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 Guide to Oracle 10g 39 Constraint Names 10g too Guide to Oracle 10g 40 Primary Key Constraints  Table-level  Defining a primary key: CONSTRAINT constraint_name PRIMARY KEY  Example: s_id NUMBER(6) CONSTRAINT student_s_id_pk PRIMARY KEY Guide to Oracle 10g 41 Primary Key Constraints  Can be defined when field is declared Guide to Oracle 10g 42 Primary Key Constraints  Can also be defined after all table field definitions are completed Guide to Oracle 10g 43 Composite Primary Keys  Syntax: CONSTRAINT constraint_name PRIMARY KEY (field1, field2)  Must be defined after fields that compose key are defined Guide to Oracle 10g 44 Foreign Key Constraints  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) Guide to Oracle 10g 45 Foreign Key Constraints  Can be defined when field is declared NOTE: faculty TABLE MUST EXIST BEFORE my_students. Guide to Oracle 10g 46 Foreign Key Constraints  Can also be defined after all table field definitions are completed Guide to Oracle 10g 47 Value Constraints  Column-level  Restricts data values that can be inserted in a field  In general, avoid value constraints because they make the database very inflexible Guide to Oracle 10g 48 Types of Value Constraints  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 Guide to Oracle 10g 49 Types of Value Constraints  Default: specifies a default value that is inserted automatically unless the user insert an other value  Example: Must be created in the column declaration, NOT a separate command beginning with CONSTRAINT. 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) (Primary key constrain does not allow NULL, but this does) Guide to Oracle 10g 50 SQL*Plus  Oracle SQL command line utility for issuing SQL commands  Starting SQL*Plus Guide to Oracle 10g 51 Using SQL*Plus  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’  Commands are NOT case sensitive. Guide to Oracle 10g 52 Exiting SQL*Plus  Type exit at SQL> prompt or  Click Close button on SQL*Plus window Guide to Oracle 10g 53 Oracle Help Resources  Ora.hlp file  Oracle Technology Network (OTN)  http://otn.oracle.com Guide to Oracle 10g 54 Create a Table Guide to Oracle 10g 55 Using Notepad  Useful to use Notepad to edit sql commands Commands can be edited without retyping  Commands can be saved  Saving multiple sql commands in a file creates a script  Guide to Oracle 10g 56 Study … Can you create TABLE student now? Guide to Oracle 10g 57 Table Creation Sequence   When creating tables with foreign key references, create referenced tables first Always create tables without foreign keys before those with foreign keys Guide to Oracle 10g 58 Viewing Table Information  Viewing a table’s structure DESCRIBE table_name; Guide to Oracle 10g 59 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  View: is a db object that the DBMS bases on an actual db table and which enables the DBMS to present the table data in a different format based on user needs. It can serve to hide some table columns in which the user has no interest or doesn’t have privileges to view. Guide to Oracle 10g 60 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 Guide to Oracle 10g 61 Querying the Data Dictionary Views  Syntax: SELECT view_columnname1, view_columnname2, … FROM prefix_object; Try: DESCRIBE user_tables; to see the details of that table. Guide to Oracle 10g 62 Viewing Information About Tables      General command: SELECT view_columnname1, view_columnname2, … FROM prefix_object; view_columnname1, view_columnname2,… are the name of the fields you want to retrieve from the view. prefix: either USER, ALL or DBA. object: the type of the DB object you are examining. See next slide for these objects. Ex: select table_name from user_tables;   Table_name is a field name in the table user_tables. User_tables is a table saves the names of all the table you (user) create. Guide to Oracle 10g 63 Database Objects with Data Dictionary View Object Name Object Type OBJECTS All database objects TABLES Database tables INDEXES Table indexes created to improve query performance VIEWS Database views SEQUENCES Sequences created to automatically generate surrogate key values USERS Database users CONSTRAINTS Table constraints CONS_COLUMNS Table columns that have constraints IND_COLUMNS Indexed columns TAB_COLUMNS All table Guide tocolumns Oracle 10g 64 Viewing Constraints on One Table Try: DESCRIBE user_constraints; to see the details of that table. Guide to Oracle 10g 65 Modifying Tables  Unrestricted actions: some specifications can always be modified.  Renaming tables  Adding new columns  Increasing column sizes  Dropping columns  Dropping constraints Guide to Oracle 10g 66 Modifying Tables  Restricted actions:specifications modified only in certain situations  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 Guide to Oracle 10g constraint 67 Deleting and Renaming Tables  To delete:     DROP TABLE [tablename] Use with caution. It is a restricted actions, can not be dropped if it contains a foreign key. Delete the constraint and then drop the table or use cascade. To delete foreign key constraints, add “CASCADE CONSTRAINTS” To rename:    RENAME old_tablename TO new_tablename DBMS automatically transfers to the new table integrity constraints, indexes, and privileges that referenced the old table. Views and stored program units that reference the old table name become Invalid. Guide to Oracle 10g 68 Altering Tables  Adding a new field: ALTER TABLE tablename ADD (fieldname field_specification); Guide to Oracle 10g 69 Altering Tables  Modifying an existing field: ALTER TABLE tablename MODIFY (fieldname new_field_specification); Can only change data type to compatible data type (i.e. varchar2 to char) Guide to Oracle 10g 70 Altering Tables  Deleting an existing field: ALTER TABLE tablename DROP COLUMN fieldname; ALTER TABLE faculty ADD (faculty_rank VARCHAR2(4)); Guide to Oracle 10g 71 Renaming a Column  To rename a field ALTER TABLE tablename RENAME COLUMN old_fieldname TO new_fieldname; Ex: ALTER TABLE faculty RENAME COLUMN faculty_rank to f_rank; Guide to Oracle 10g 72 Adding and Deleting Constraints  Add a constraint: ALTER TABLE tablename ADD CONSTRAINT constraint_name constraint_definition;  Remove a constraint: ALTER TABLE tablename DROP CONSTRAINT constraint_name; Examples: ALTER TABLE faculty ADD CONSTRAINT faculty_f_pin_uk UNIQUE (f_pin); ALTER TABLE faculty DROP CONSTRAINT faculty_f_pin_uk; Guide to Oracle 10g 73 Enabling and Disabling Constraints    When modifying a database it can be useful to disable constraints Constraints are enabled by default To disable a constraint: ALTER TABLE tablename DISABLE CONSTRAINT constraint_name;  To enable a constraint: ALTER TABLE tablename ENABLE CONSTRAINT constraint_name; 1. ALTER TABLE faculty DISABLE CONSTRAINT faculty_loc_id_fk; 2. ALTER TABLE faculty ENABLE CONSTRAINT faculty_loc_id_fk; 3. DROP TABLE faculty CASCADE CONSTRAINTS; 4. Guide to Oracle 10g EXIT; 74 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; Guide to Oracle 10g 75 Summary  SQL commands include:    To create a table:     Data description language (DDL) commands: create, modify, Deleted database objects Data manipulation language (DML) commands: insert, update, delete, view database data specify the table name, the name of each data field, and the data type and size of each data field Data types ensure correct data values Constraints restrict values of database fields SQL*Plus commands are not case sensitive Guide to Oracle 10g 76 Summary    (cont.) Errors include line number, position, error code Use DESCRIBE command to display a table’s fieldnames and data types Tables can be modified or deleted but some changes are restricted Guide to Oracle 10g 77 End Of Chapter 2 Guide to Oracle 10g 78
 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                            