morning323

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  5 随笔 :: 1 文章 :: 0 评论 :: 3713 阅读

1.1 直接创建表:

  CREATE TABLE

  [ IF NOT EXISTS] tb_name  - - 不存在才创建,存在就跳过

  (column_name1 data_type1  - - 列名和类型必写

    [PRIMARY KEY  - - 可选的约束,主键

     | FOREIGN KEY  - - 外键,引用其他表的主键

     | AUTO_INCREMENT  - - 自增ID

     | COMMENT comment  - - 列注释(评论)

     | DEFAULT default_value  - - 默认值

     | UNIQUE  - - 唯一性约束,不允许两条记录该列的值相同

     | NOT NULL  - - 该列非空

    ] ,  . . .

  )  [CHARACTER SET charset]  - - 字符集编码

  [ COLLATE collate_value ]  - - 列排序和比较时的规则(是否区分大小写等)

1.2 从另一张表复制表结构创建表:CREATE TABLE tb_name LIKE tb_name_old

1.3 从另一张表的查询结果创建表:CREATE TABLE tb_name AS SELECT * FROM tb_name_old WHERE options

 

2.1 修改表:ALTER TABLE 表名 修改选项。

选项集合:

  { ADD COLUMN <列名> <类型> [ FIRST | AFTER COLUMN <旧列名> ]  - - 增加列,默认添加到表的最后一列,FIRST指定到第一列,AFTER添加到某列之后

   | CHANGE COLUMN <旧列名> <新列名> <新列类型>  - - 修改列名或类型

   | ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFALUT }  - - 修改 / 删除 列的默认值

   | MODIFY COLUMN <列名> <类型>  - - 修改列类型

   | DROP COLUMN <列名>  - - 删除列

   | RENAME TO <新表名>  - - 修改表名

   | CHARACTER SET <字符集名>  - - 修改字符集

   | COLLATE <校对规则名> }  - - 修改校对规则(比较和排序时用到) 

  }

 

3. 删除表

3.1 DELETE

删除整张表:DELETE FROM TABLE tb_name;

删除部分数据,添加 where自居:DELETE FROM TABLE tb_name WHERE ...;

说明:

  1)属于DML语言,每次删除一行,都在事务日志中为所删除的每行记录一项。产生 rollback,事务提交之后才生效;如果有相应的 Trigger,执行的时候将被触发,如果删除大数据量的表速度会很慢。

  2)删除表中的数据而不删除表的结构(定义),同时也不释放空间。

3.2 TRUNCATE

只能操作表,将表中的数据全部删除,在功能上和不带 where字句的 delete语句相同:

  TRUNCATE TABLE tb_name;

说明:

  1)默认情况下,truncate通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放,所以使用的系统和事务日志资源少,可以使用 reuse storage; truncate会将高水线复位(回到最开始)。

  2)truncate是DDL语言,操作立即生效,自动提交,原数据不妨到 rollback segment中,不能回滚,操作不触发 trigger。

  3)删除内容、释放空间但不删除表结构(定义)。

3.3 DROP

drop语句将删除表的结构,以及被依赖的约束(constraint),触发器(trigger),索引(index);

DROP TABLE tb_name;

说明:

  1)删除之后,依赖于该表的存储过程 / 函数将保留,但是变为 invalid状态。

  2)drop也属于DDL语言,立即执行,执行速度最快。

  3)删除内容和定义,释放空间。

 

posted on   morninggg  阅读(139)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示