• MySQL——库和表的增删改


    2023.9.12

            本章学习DDL(数据定义语言)语言,相关笔记:

    1. #DDL
    2. /*
    3. 数据定义语言
    4. 库和表的管理
    5. 一、库的管理
    6. 创建、修改、删除
    7. 二、表的管理
    8. 创建、修改、删除
    9. 创建: create
    10. 修改: alter
    11. 删除: drop
    12. */
    13. #一、库的管理
    14. #1、库的创建
    15. /*
    16. 语法:
    17. create database [if not exists]库名;
    18. */
    19. #案例:创建库Books
    20. CREATE DATABASE IF NOT EXISTS books ;
    21. #2、库的修改
    22. RENAME DATABASE books TO 新库名; #已废除
    23. #更改库的字符集
    24. ALTER DATABASE books CHARACTER SET gbk;
    25. #3、库的删除
    26. DROP DATABASE IF EXISTS books;
    27. #二、表的管理
    28. #1.表的创建 ★
    29. /*
    30. 语法:
    31. create table 表名(
    32. 列名 列的类型【(长度) 约束】,
    33. 列名 列的类型【(长度) 约束】,
    34. 列名 列的类型【(长度) 约束】,
    35. ...
    36. 列名 列的类型【(长度) 约束】
    37. )
    38. */
    39. #案例:创建表Book
    40. CREATE TABLE book(
    41. id INT,#编号
    42. bName VARCHAR(20),#图书名
    43. price DOUBLE,#价格
    44. authorId INT,#作者编号
    45. publishDate DATETIME#出版日期
    46. );
    47. DESC book;
    48. #案例:创建表author
    49. CREATE TABLE author(
    50. id INT,
    51. au_name VARCHAR(20),
    52. nation VARCHAR(10)
    53. );
    54. DESC author;
    55. #2.表的修改
    56. /*
    57. 语法
    58. alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;
    59. */
    60. #①修改列名
    61. ALTER TABLE book CHANGE COLUMN `publishDate` pubDate DATETIME;
    62. #②修改列的类型或约束
    63. ALTER TABLE book MODIFY COLUMN `pubDate` TIMESTAMP;
    64. #③添加新列
    65. ALTER TABLE author ADD COLUMN annual DOUBLE;
    66. #④删除列
    67. ALTER TABLE author DROP COLUMN annual;
    68. #⑤修改表名
    69. ALTER TABLE author RENAME TO book_author;
    70. #3.表的删除
    71. DROP TABLE IF EXISTS book_author;
    72. #通用的写法:
    73. DROP DATABASE IF EXISTS 旧库名;
    74. CREATE DATABASE 新库名;
    75. DROP TABLE IF EXISTS 旧表名;
    76. CREATE TABLE 表名();
    77. #4.表的复制
    78. INSERT INTO author VALUES
    79. (1,'a','japan'),
    80. (2,'b','china'),
    81. (3,'c','china'),
    82. (4,'d','USA');
    83. SELECT * FROM Author;
    84. #1.仅仅复制表的结构
    85. CREATE TABLE copy LIKE author;
    86. SELECT * FROM copy;
    87. #2.复制表的结构+数据
    88. CREATE TABLE copy2
    89. SELECT * FROM author;
    90. SELECT * FROM copy2;
    91. #3.只复制部分数据
    92. CREATE TABLE copy3
    93. SELECT * FROM author
    94. WHERE nation = 'china';
    95. SELECT * FROM copy3;
    96. #4.仅仅复制某些字段
    97. CREATE TABLE copy4
    98. SELECT id,au_name
    99. FROM author
    100. WHERE 0;
    101. SELECT * FROM copy4;

            课后习题:

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

  • 相关阅读:
    怎么直连某个服务器的dubbo服务
    为什么Dapr是比SpringCloud和Istio更优雅的微服务框架?
    mybatis 单框架实现数据库查询
    RFID资产管理解决方案
    基于JavaWeb的居民户籍管理系统设计与实现
    [SpringBoot] 父子项目搭建,过滤多模块发布到私仓
    Redis(列表List)
    【MySQL入门】第五话 · SQL单表查询
    【Linux kernel/cpufreq】framework ----初识
    String转JsonObject 再转list<Map<String,Object>>
  • 原文地址:https://blog.csdn.net/m0_61028090/article/details/132841535