פקודת עדכון SQL – ניתן להעזר בדוגמאות קוד אלו כדי לתרגל את עדכון הטבלאות, בנוסף הייתי ממליץ להעזר בפוסט הבא
------------------------------------- -- DML - Data Manipulation Language ------------------------------------- USE Northwind GO ------------------------------------- -- INSERT (Implicit) ------------------------------------- DROP TABLE emps CREATE TABLE emps (id int , f_name varchar(25), hire_date date default getdate(), salary money default 5000) INSERT INTO emps VALUES (1, 'yossi' , '1995-01-22' , 6000) -- error INSERT INTO emps VALUES ('moshe' , 2 , 6000 , '1995-01-22' ) INSERT INTO emps VALUES (2 , 'moshe' , '1999-04-15' ) INSERT INTO emps VALUES (2 , 'moshe' , DEFAULT , NULL ) SELECT * FROM emps ------------------------------------- -- INSERT (Explicit) ------------------------------------- INSERT INTO emps (id , f_name , hire_date , salary) VALUES (3 , 'haim' , DEFAULT , DEFAULT ) INSERT INTO emps (id , f_name ) VALUES (4 , 'avi' ) SELECT * FROM emps ------------------------------------- -- INSERT SELECT .. ------------------------------------- INSERT INTO emps (id , f_name ) --VALUES (4 , 'avi' ) SELECT employeeID , firstName FROM employees WHERE lastName LIKE '%a%' SELECT * FROM emps INSERT INTO emps --VALUES (4 , 'avi' ) SELECT productID , SUBSTRING(productName , 1 , 5) , getdate() , 20 FROM products WHERE categoryID = 5 SELECT * FROM emps ------------------------------------- -- UPDATE ------------------------------------- SELECT * FROM emps UPDATE emps SET f_name = 'Ram' WHERE salary IS NULL UPDATE emps SET salary = 0 UPDATE emps SET id = 2 , f_name = 'NoName' , salary = 0 WHERE id > 5 UPDATE emps SET id = 2 , f_name = NULL , salary = DEFAULT WHERE id = 2 INSERT INTO emps SELECT employeeID , lastName ,hireDate , 5000 FROM employees UPDATE emps SET salary = (SELECT AVG(unitPrice) FROM products ) WHERE id > 4 ------------------------------------- -- DELETE (DML) ------------------------------------- DELETE FROM emps WHERE id > 5 DELETE emps WHERE id = 3 SELECT * FROM emps ------------------------------------- -- TRUNCATE (DDL) ------------------------------------- -- Much faster than DELETE -- DELETEs all table rows / no WHERE option TRUNCATE TABLE emps SELECT * FROM emps ---------------------------------------- -- TRANSACTIONS ---------------------------------------- DELETE FROM emps INSERT INTO emps SELECT employeeID , lastName ,hireDate , 5000 FROM employees SELECT * FROM emps BEGIN TRAN UPDATE emps SET salary = NULL DELETE FROM emps WHERE id IN (1,2) UPDATE emps SET f_name = 'AAAAAA' SELECT * FROM emps ROLLBACK -- or COMMIT