國立聯合大學 資訊管理學系 陳士杰老師 sql-99: 綱要定義、基本限制與查詢...
Post on 20-Dec-2015
277 views
TRANSCRIPT
- Slide 1
- SQL-99: (1)
- Slide 2
- ( ) Outlines Database Languages SQL Data Query Language, DQL ( ) Data Definition Language, DDL ( ) Data Manipulation Language, DML ( ) Data Control Language, DCL ( ) (see Chapter 8, Chapter 9; Ch. 5~Ch. 7)
- Slide 3
- ( ) Database Languages SQL (Structured Query Language, ) IBM 1970 SQL SQL (stored procedure) 1999 SQL/99 SQL/3 DB DB (stored procedure) ( SQL/87 SQL/1, SQL/92 SQL/2)
- Slide 4
- ( ) SQL (Data Definition Language, DDL) CreateDropAlter ( (Create), (Drop), (Alter)) Table View Schema (Data Manipulation Language, DML) InsertUpdate Delete ( (Insert) (Update) (Delete)) Table Data (Data Query Language, DQL) Select Select (Data Control Language, DCL) GRANT, REVOKE, ALTER PASSWORD (Data Administration Commands) (Transactional Control Commands)
- Slide 5
- ( ) SQL (ANSI SQL) SQL ANSI SQL
- Slide 6
- ( ) SQL ANSI SQL (Character Strings) CHAR(n) (n ) VARCHAR(n) BIT(n) (n ) BIT VARING(n) MySQL
- Slide 7
- ( ) ENUM ( ) 65535 NULL Field1 ENUM('Am','Pm') DEFAULT Am Field2 ENUM( , , ) DEFAULT SET ( ) SET Field1 SET( , , ) Field1 INSERT INTO Field1 VALUES ( , )
- Slide 8
- ( ) ANSI SQL (Numeric Strings) INT, INTEGER (4bytes; 0~ 0-4294967295 ) DEC(m,n), DECIMAL(m,n), NUMERIC(m,n) (m n ) SMALLINT (2bytes; 0~65535) FLOAT (4bytes) REAL (4bytes) DOUBLE PRECISION (8bytes)
- Slide 9
- ( ) MySQL
- Slide 10
- ( ) ANSI SQL / (Date/Time) DATE YYYY-MM-DD TIME HH:MM:SS TIMESTAMP DATE+TIME+ INTERVAL MySQL /
- Slide 11
- ( ) (Supplier) (Component) (Project) (Project_supp_Component)
- Slide 12
- ( ) Data Definition Language, DDL ( ) - - (1) DDL CREATE, DROP, ALTER (database) (Table) (View)
- Slide 13
- ( ) Create Drop Schema CREATE SCHEMA (DATABASE) CREATE SCHEMA (DATABASE): ( ) CREATE SCHEMA ; CREATE DATABASE ; CREATE SCHEMA/DATABASE Jacy_Database; DROP SCHEMA (DATABASE) DROP SCHEMA (DATABASE): ( ) DROP SCHEMA ; DROP DATABASE ; DROP SCHEMA/DATABASE Jacy_Database;
- Slide 14
- ( ) MySQL ( ) CREATE SCHEMA CREATE DATABASE ( ) DROP SCHEMA [CASCADE/RESTRICT]; DROP DATABASE [CASCADE/RESTRICT]; SQL
- Slide 15
- ( ) CREATE TABLE CREATE TABLE: ( ) CREATE TABLE ( [Null/Not null] [DEFAULT ], PRIMARY KEY( ), UNIQUE( ), FOREIGN KEY( ) REFERENCES [ON DELETE/ON UPDATE] ); !!
- Slide 16
- ( ) CREATE TABLE Department (Dname CHAR(10) NOT NULL, Dno INT NOT NULL, Dadd CHAR(20), PRIMARY KEY(Dno) ); CREATE TABLE Project (Pname CHAR(10) NOT NULL, Pno INT NOT NULL, PRIMARY KEY(Pno) );
- Slide 17
- ( ) CREATE TABLE Employee_01 ( Ssn CHAR(10) NOT NULL, Emp_id CHAR(10) NOT NULL, Address VARCHAR(50), Dept_id INT, Proj_id INT, Salary NUMERIC(8,1) NOT NULL DEFAULT 18000, Primary Key(Ssn) );
- Slide 18
- ( ) CREATE TABLE Employee_02 ( Ssn CHAR(10) NOT NULL, Emp_id CHAR(10) NOT NULL, Address VARCHAR(50), Dept_id INT, Proj_id INT, Salary NUMERIC(8,1) NOT NULL DEFAULT 18000, PRIMARY KEY(Ssn), UNIQUE(Emp_id), FOREIGN KEY(Proj_id) REFERENCES Project(Pno), FOREIGN KEY(Dept_id) REFERENCES Department(Dno) ON Delete CASCADE );
- Slide 19
- ( ) ON DELETE ON UPDATE NO ACTION RESTRICT DBMS CASCADE SET NULL SET DEFAULT
- Slide 20
- ( )
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- MySQL MyISAM MySQL ( ENGINE ) InnoDB (Transaction) (Foreign Key) ( ) MyISAM v.s. InnoDB MyISAM InnoDB
- Slide 25
- ( ) MySQL CREATE TABLE ( [ ] [ ], [ ] [ ], PRIMARY KEY( ), UNIQUE( ), FOREIGN KEY( ) REFERENCES, FOREIGN KEY( ) REFERENCES ON DELETE/ON UPDATE, MyISAM )ENGINE = MyISAM/InnoDB; ( MyISAM ) SQL SQL
- Slide 26
- ( ) CREATE TABLE Employee_01 ( Ssn CHAR(10) NOT NULL, Emp_id CHAR(10) NOT NULL, Address VARCHAR(50), Dept_id INT not null, Proj_id INT not null, Salary NUMERIC(8,1) NOT NULL DEFAULT 18000, Primary Key(Ssn) );
- Slide 27
- ( ) Department, Project, Employee_02 Employee_02 Department Project ( Project, Department) ( Employee_02) MySQL InnoDB (Alter Table)
- Slide 28
- ( ) CREATE TABLE Department (Dname CHAR(10) NOT NULL, Dno INT NOT NULL, Dadd CHAR(20), PRIMARY KEY(Dno) ) ENGINE=INNODB; CREATE TABLE Project (Pname CHAR(10) NOT NULL, Pno INT NOT NULL, PRIMARY KEY(Pno) ) ENGINE=INNODB;
- Slide 29
- ( ) CREATE TABLE Employee_02 ( Ssn CHAR(10) NOT NULL, Emp_id CHAR(10) NOT NULL, Address VARCHAR(50), Dept_id INT, Proj_id INT, Salary NUMERIC(8,1) NOT NULL DEFAULT 18000, PRIMARY KEY(Ssn), UNIQUE(Emp_id), FOREIGN KEY(Proj_id) REFERENCES Project(Pno), FOREIGN KEY(Dept_id) REFERENCES Department(Dno) ON Delete CASCADE ) ENGINE=INNODB;
- Slide 30
- ( ) DROP TABLE DROP TABLE: ( ) DROP TABLE ; DROP TABLE Employee_01;
- Slide 31
- ( ) ALTER TABLE ALTER TABLE: ALTER TABLE ADD/DROP/ALTER ALTER TABLE ADD [ ] ALTER TABLE Employee_02 ADD SEX CHAR(1); ALTER TABLE ALTER ALTER TABLE Employee_02 ALTER Salary DROP DEFAULT;
- Slide 32
- ( ) ALTER TABLE DROP ALTER TABLE Employee_02 DROP Address; ALTER TABLE ADD PRIMARY KRY ; ALTER TABLE ADD UNIQUE ; ALTER TABLE ADD FOREIGN KRY REFERENCES ( )
- Slide 33
- ( ) slide 9
- Slide 34
- ( ) Data Manipulation Language, DML ( ) DML Insert, Update, Delete INSERT: DELETE: WHERE UPDATE: WHERE
- Slide 35
- ( ) INSERT: INSERT INTO [(attribute1, attribute2,)] VALUES () EMPLOYEE(Ssn, FName, LName, Bdate, Add, Tel, Salary) INSERT INTO EMPLOYEE(Ssn, FName, LName, Salary) VALUES (F111111111, Jacy, Chen, 100); // INSERT INTO EMPLOYEE VALUES (F111111111, Jacy, Chen, 1977-01-01, Taipei, NULL, 100); //
- Slide 36
- ( ) DELETE: WHERE DELETE FROM WHERE EMPLOYEE(Ssn, FName, LName, Bdate, Add, Tel, Salary) DELETE FROM EMPLOYEE WHERE BDate < 1975-02-02; DELETE FROM EMPLOYEE WHERE Ssn = A1234567; DELETE FROM EMPLOYEE;
- Slide 37
- ( ) UPDATE: WHERE UPDATE SET = WHERE EMPLOYEE(Ssn, FName, LName, Bdate, Add, Tel, Salary) UPDATE EMPLOYEE SET Tel = 12365649, Salary = 200 WHERE Ssn = A9876543;
- Slide 38
- ( ) slide 9
- Slide 39
- ( ) 1. 1. DB 2. 2. 3. 4. 5. 5.