案例1

  1. -- 1. 创建表dept1
  2. -- NAME NULL? TYPE
  3. -- id INT(7)
  4. -- NAME VARCHAR(25)
  5. USE test;
  6. CREATE TABLE dept1(
  7. id INT(7),
  8. NAME VARCHAR(25)
  9. );
  10. -- 2. 将表departments中的数据插入新表dept2
  11. CREATE TABLE dept2
  12. SELECT department_id,department_name
  13. FROM myemployees.departments;
  14. -- 3. 创建表emp5
  15. -- NAME NULL? TYPE
  16. -- id INT(7)
  17. -- First_name VARCHAR (25)
  18. -- Last_name VARCHAR(25)
  19. -- Dept_id INT(7)
  20. CREATE TABLE emp5(
  21. id INT(7),
  22. first_name VARCHAR(25),
  23. last_name VARCHAR(25),
  24. dept_id INT(7)
  25. );
  26. -- 4. 将列Last_name的长度增加到50
  27. ALTER TABLE emp5 MODIFY COLUMN last_name VARCHAR(50);
  28. -- 5. 根据表employees创建employees2
  29. CREATE TABLE employees2 LIKE myemployees.employees;
  30. -- 6. 删除表emp5
  31. DROP TABLE IF EXISTS emp5;
  32. -- 7. 将表employees2重命名为emp5
  33. ALTER TABLE employees2 RENAME TO emp5;
  34. -- 8.在表deptemp5中添加新列test_column,并检查所作的操作
  35. ALTER TABLE emp5 ADD COLUMN test_column INT;
  36. -- 9.直接删除表emp5中的列 dept_id
  37. DESC emp5;
  38. ALTER TABLE emp5 DROP COLUMN test_column;

案例2

-- 1.向表emp2的id列中添加PRIMARY KEY约束(my_emp_id_pk)

ALTER TABLE emp2 MODIFY COLUMN id INT PRIMARY KEY;
ALTER TABLE emp2 ADD CONSTRAINT my_emp_id_pk PRIMARY KEY(id);

-- 2.    向表dept2的id列中添加PRIMARY KEY约束(my_dept_id_pk)

-- 3.    向表emp2中添加列dept_id,并在其中定义FOREIGN KEY约束,与之相关联的列是dept2表中的id列。
ALTER TABLE emp2 ADD COLUMN dept_id INT;
ALTER TABLE emp2 ADD CONSTRAINT fk_emp2_dept2 FOREIGN KEY(dept_id) REFERENCES dept2(id);

位置 支持的约束类型 是否可以起约束名
列级约束 列的后面 语法都支持,但外键没有效果 不可以
表级约束 所有列的下面 默认和非空不支持,其他支持 可以(主键没有效果)