首页 > 数据库 >SQL_9_DDL语句

SQL_9_DDL语句

时间:2022-12-16 17:23:43浏览次数:43  
标签:语句 列名 SQL 视图 约束 表名 table alter DDL

DDL指数据定义语言,用来操作数据库中的对象,对象包括了表、用户、视图、索引。

DDL属于隐式事务,执行即提交事务,对于数据库的改变是永久的。

创建对象:create  

删除对象:drop

修改对象:alter

重命名对象:rename


一、表对象

分类:

  用户表:由用户创建和维护的集合,包含用户信息。

  数据字典:由数据库系统创建和维护的集合,包含数据库信息。

Oracle中常用的数据字典:

  user_tables,包含本用户拥有的所有的表的信息。

  user_objects,包含本用户拥有的所有的数据类型的信息。

  user_catalog,包含本用户拥有的表、视图、同义词、序列的信息。


二、操作表

创建:

  指定列名列属性创建表:creat table 表名(列名1  数据类型1,列名2  数据类型2.......)

  通过结果集创建表:creat table 表名  as  查询语句

修改:

  增加列:alter table 表名  add(列名  数据类型)

  修改列:alter table 表名  modify(列名  数据类型  default  默认值

  删除列:alter table 表名  drop column  列名

  改列名:alter table 表名 rename column  原列名  to 新列名

改名:

  rename 原表名 to  新表名

截断:

  truncate table 表名,把表中所有数据删除。

删除:

  drop table 表名


三、操作约束

 约束包括不为空(not null)、唯一(unique)、主键(Primay Key)、外键(Foregin Key)、检查(Check)。

一般都需要给约束取名字,不取的话系统会帮忙取默认名字。

添加:

  在创建表时

    给列添加约束(除了外键约束):在列后面直接指定约束

creat table 表名(列名  数据类型  constraint 约束名   约束,....)

    除了非空约束可以:在列定义完后,定义约束

creat table 表名 (列名 数据类型,......,
                  constraint 约束名 约束(列名)) 

    外键约束:必须在列定义完后单独定义外键,注意外键参照的表和列都存在

create table 表名(列名  数据类型,.....
                  constraint 约束名 foreign key(列名) references 参照表名(参照列名))

  在表创建好后

    给列添加约束:add

alter table 表名 add(列名 constraint  约束名  约束,.....)

    给列修改约束:modify

alter table 表名 modify (列名 constraint  约束名  约束,.....)

查看约束:

  使用数据字典可以查看约束。Oracle中查看指定表的所有约束:

select constraint_name,constraint_type,search_condition
from user_constraints
where table_name = 表名

禁用约束:

  当此键为另一个表的外键时,需要加cascade关键字,它声明与此列相关的约束全部禁用。

alter table 表名 disable constraint 约束名 cascade

启用约束:

alter table 表名 enable constraint 约束名

四、视图对象

视图是根据需求保存的一个结果集,它能够作为一个表来被查询,也可通过它进行数据修改(不建议)。

对视图DML操作,实际上是操作数据源的表。

不能DML操作的列:

  函数列,表达式列,通过distinct获得的列。

分类:

  简单视图:数据来源一个表,列为单独列,无分组,可以进行DML操作。

  复杂视图:数据来源多个表,列中可以有函数值、表达式,可以是分组结果,不能进行DML操作。

  内建视图:每一个子查询获得的结果集都是一个内建视图,可以通过取别名来引用它的列。(在from子句中使用的子查询)

创建:

  通过查询语句创建一个视图,不知道列名时,默认使用查询中投影的列名。

creat view 视图名(列名1,列名2,...) as 查询语句

指定视图为只读视图:在创建视图语句的最后加  with read only

删除:

drop view 视图名

 

标签:语句,列名,SQL,视图,约束,表名,table,alter,DDL
From: https://www.cnblogs.com/lurenjia-bky/p/16982738.html

相关文章

  • postgreSQL常用命令
     --建表案例CREATETABLEgas_use_test(idserialPRIMARYKEYNOTNULL,tenantIdintegerNOTNULL,meterNovarchar(255)uniqueNOTNULL,......
  • Mysql主从复制详解
    目的:主从服务器设置的稳健性得以提升,如果主服务器发生故障,可以把本来作为备份的从服务器提升为新的主服务器。在主从服务器上分开处理用户的请求,可获得更短的响应时间。用从......
  • SQL语句的REVERSE函数,关键字用法
    1.函数。select reverse(123456)fromdual;select reverse('123456') fromdual;2.关键字。declarevnumber;cnumber;beginv:=100;forcinreverse......
  • NoSQL数据库学习手记——初见倾心ETCD与ZooKeeper
    ​​复制状态机​​Time,Clocks,andtheOrderingofEventsinaDistributedSystem/Implementingfault-tolerantservicesusingthestatemachineapproach​可......
  • MySQL的约束
    一、六大约束notnull:非空,保证该字段的值不为空,比如姓名。学号等default:默认,用于保证该字段有默认值,比如性别primarykey:主键,用于保证该字段值具有唯一性并且非空,比如学......
  • Python SQL 驱动程序 - pymssql
    PythonSQL驱动程序-pymssql前言pymssql官方地址:https://pypi.org/project/pymssql/一、下载pymssql不通的操作系统,不同的Python版本下载对应的pymssql注意:博主运......
  • Oracle的网络三大配置文件sqlnet.ora、tnsnames.ora、listener.ora
    1.说明为了使得外部进程能够访问Oracle 数据库则必须配置Oracle 网络服务器环境配置, Oracle 网络服务器环境是通过配置listener.ora、sqlnet.ora 和 tnsnames.ora ......
  • mysql的优化---思路篇
    假如你是一名DBA,或者一名开发者,让你去优化mysql数据库,你会想到怎么样优化逻辑思路?sql语句的explain查看是否使用索引?是不是查看表索引是否合理?还是cache查询结果?也许这些细......
  • mysql回滚
    mysql使用binlog回滚数据(通用)起因:某一天,工作时有个需求,一个修改的操作,直接用了mybatisplus的修改操作,伪代码如下:Useruser=basemapper.getUserById("1");user.setNam......
  • MySQL数据库:SQL语句的执行过程
    目录一、客户端的MySQL驱动二、MySql架构的Server层1、连接器2、查询缓存3、分析/解析器4、优化器5、执行器三、InnoDB存储引擎1、BufferPool2、undolog日志3、redolog......