数据库DDL操作 创建和管理表

创建数据库

方式一:创建数据库

             create database 数据库名;

方式二:创建数据库并指定字符集

              create database 数据库名 character set 字符集;

方式三:判断数据库是否已经存在,不存在则创建数据库( 推荐

               create database if  exists 数据库名;

注意:DATABASE 不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删 旧库完成的。

使用数据库

查看所有的数据库

            show databases;

查看当前正在使用数据库

            select database();

查看指定数据库下所有的表

             show tables from 数据库名;

查看数据的创建信息

              show create database 数据库名;

切换数据库

              use 数据库名;

修改数据库

 更改数据库的字符集

       alter database 数据库名 character set 字符集;

删除数据库

       drop database 数据库名;

删除数据库(推荐使用

       drop database if  exists 数据库名 

创建表(create)

方式一:
create table [ if  not exists ] 表名 (
        字段1, 数据类型 [ 约束条件 ] [ 默认值 ],
        字段2, 数据类型 [ 约束条件 ] [ 默认值 ],
        字段3, 数据类型 [ 约束条件 ] [ 默认值 ],
                ……
                [表约束条件]
);
create table 表名 as (select 语句)
查看数据表的结构
       desc 表名;
       show create table 表名;

修改表(alter)

使用alter table   语句可以实现:
        向已有的表中添加列
        修改现有表中的列
        删除现有表中的列
        重命名现有表中的列       
 追加一个字段
        alter table 表名 add 字段名 数据类型;
修改一列
   alter table 表名 modify 列名 新的数据类型;
重命列名

        alter table 表名  change 旧列名 新列名;

删除一列
        alter table 表名 drop 字列名;
修改表名
        rename table 旧表名 to 新列名;
        alter table 旧表名 rename 【to】 新表名

删除表

        drop table [if exists] 表名;

清空表

  truncate table 表名; 不可以用rollback回滚
  delete from 表名;可以用rollback回滚

阿里开发规范:
【参考】TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少,但 TRUNCATE 无
事务且不触发 TRIGGER,有可能造成事故,故不建议在开发代码中使用此语句。
说明:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于数据库DDL触发器的问题。DDL触发器可以在数据库的结构发生变化时自动执行一些操作,比如在创建或修改结构时自动插入数据或更新数据。 下面是一个创建DDL触发器的示例代码: ``` CREATE TRIGGER trigger_name ON DATABASE FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE AS BEGIN -- 在这里写下需要执行的操作,可以是SQL语句或存储过程 END ``` 这个示例代码创建了一个名为"trigger_name"的DDL触发器,它会在数据库创建、修改或删除时自动触发。在BEGIN和END之间的代码是需要执行的操作,可以是SQL语句或存储过程。 在学生信息管理系统中,我们可以创建一个DDL触发器来记录所有的结构变化,例如创建、修改或删除。示例代码如下: ``` CREATE TRIGGER trigger_log_table_changes ON DATABASE FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE AS BEGIN INSERT INTO table_changes_log (change_type, table_name, change_time) SELECT EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'), EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]', 'nvarchar(100)'), GETDATE() END ``` 这个示例代码创建了一个名为"trigger_log_table_changes"的DDL触发器,它会在数据库创建、修改或删除时自动触发。触发器会将变化类型、名和变化时间插入到"table_changes_log"中,以便我们随时查看的变化历史。 希望这个回答对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值