首页 > 数据库 >SQL学习——数据库定义语言(DDL)建表、删表、修改表

SQL学习——数据库定义语言(DDL)建表、删表、修改表

时间:2022-08-25 15:49:53浏览次数:59  
标签:建表 列名 定义语言 语法结构 修改 SQL TABLE ALTER 数据库

  DDL语言主要是帮助我们创建数据库对象的。

  • CREATE:创建数据库对象
  • DROP:删除数据库对象
  • ALTER:修改数据库对象
  • RENAME:修改数据库对象名称

  这要注意数据库对象不止包括有表,这些对象包括:用户,视图,索引,序列等等。

1、创建表(CREATE)

语法结构:

CREATE TABLE 表名
(列名1 列类型,
 列名2 列类型,
 ...
);

  其实所有的数据库对象的创建操作都是同样的语法:CREATE 对象类型 对象名....

1.1、数据库中表的种类(Oracle)

用户表:

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

数据字典:

  • 由Oracle服务器创建和维护的表的集合
  • 包含数据库信息
常见的数据字典表:

查看本用户所拥有的表的名称:user_tables

SELECT table_name
FROM user_tables

查看本用户所拥有的不同的对象类型:user_objects

SELECT DISTINCT object_type
FROM user_objects

查看本用户所拥有的表、视图、同义词和序列:user_catalog

SELECT *
FROM user_catalog

1.2、使用查询创建表

  类似于复制一张表的某些字段以及数据,新表的字段类型以及字段名与查询出来的字段类型一致,并且查询出来的数据也会直接插入进这个新表。

语法结构:

CREATE TABLE 新表名 AS (SELECT 列1 别名1, 列2 别名2, ... 
                       FROM 表 
                       [WHERE condition])

  这里我们会先执行查询语句,将查询到的列在新表中创建同样的列(如果指定了别名则新表的列名就会是这个别名),并且会将查询到的数据插入到新表中。

2、修改列信息(ALTER)

  ALTER TABLE语句可以修改表内数据的信息,包括:

  • 添加一个新列
  • 修改一个已存在的列(列名,列类型,默认值)
  • 删除一个列

2.1、添加一个新列(ADD)

语法结构:

ALTER TABLE 表名
ADD (列名 类型 [DEFAULT expr], 
     列名2 类型 [DEFAULT expr], ...)

2.2、修改某一列属性(MODIFY)

语法结构:

ALTER TABLE 表名
MODIFY (列名 类型 [DEFAULT expr], 
        列名2 类型 [DEFAULT expr], ...)

2.3、修改某一列的列名 (RENAME)

语法结构:

ALTER TABLE 表名
RENAME COLUMN 旧列名 TO 新列名

  使用RENAME COLUMN关键字来修改列名(批量修改还不知咋弄)。

2.4、删除某一列(DROP)

ALTER TABLE 表名
DROP COLUMN (列名1, 列名2,...)

3、修改表名称(RENAME TABLE)

  注意这里是修改表的名称,而不是对表中列的信息进行操作。其实RENAME可以修改所有数据库对象(包括表,列,序列等等)的名称。

语法结构:

RENAME 旧表名 TO 新表名

4、截断表(TRUNCATE TABLE)

  对表中的所有数据进行删除,但是会保留表结构。DELETE需要commit进行提交并且可以按条件删除,但TRUNCATE不能支持给定条件删除。

语法结构:

TRUNCATE TABLE 表名

5、删除表(DROP TABLE)

  将整个表删除,并且会释放表的空间。其实DROP还可以删除其他的数据库对象。

语法结构:

DROP TABLE 表名

  

 

标签:建表,列名,定义语言,语法结构,修改,SQL,TABLE,ALTER,数据库
From: https://www.cnblogs.com/CircleWang/p/16619143.html

相关文章

  • MSSQL服务丢失后,恢复mssql服务的方法
     服务器突然MSSQL的服务丢了,用下面这个方法,不用重装MSSQLserver了sccreateMSSQLSERVERbinpath="\"C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQ......
  • 数据篇(MongoDB+ElasticSearch+Minio+TiDB+MySQL+Redis)
    一. 简介1. MongoDB  2. ElasticSearch  3. Minio   4. TiDB  5. MySQL   6. Redis         二. 目录  ......
  • mysql 不可重复读与幻读的区别
    不可重复读的重点是修改:同样的条件,你读取过的数据,再次读取出来发现值不一样了幻读的重点在于新增或者删除同样的条件,第1次和第2次读出来的记录数不一样当然,从......
  • SQLite 将字符串拼接
    SQLite中不是使用的‘+’来操作,是需要使用特殊符号“||”例如:如果是其他字段形式的需要先装换为字符型使用CAST(字段名asTEXT)selectCAST(columnasTEXT)||'%'from......
  • MySQL的InnoDB引擎下执行更新Update语句时 执行时间太久 问题集锦
    场景1:更新cjq表的一个字段,发现执行时间半个小时以上还没执行结束UPDATEt_hplc_cjqSETcjq_type=2WHEREcjq_typeISNULLANDidIN(SELECTcjq_idFROMt_hp......
  • Linux MYSQL安装
    1、安装mysql服务器及客户端sudoapt-getinstallmysql-servermysql-client 2、安装mysqlC语言接口sudoapt-getinstalllibmysql++-dev 3、编译文件(mysql_co......
  • Mysql---函数
    《字符串相关函数》  《数学相关函数》  《时间相关函数》        ......
  • Ubuntu 安装 MySQL 5.7
    一、安装MySQL1. 删除Mysql 数据库sudoaptautoremove--purgemysql-server-*sudoaptremovemysql-serversudoaptautoremovemysql-serversudoaptremovem......
  • 【MySQL】mysqldump从所有数据库备份中还原某个指定的库
    有时候,需要还原某个特定的数据库,但是在备份的时候却又备份了所有的数据库。这时,就可以通过参数--one-database选项来还原指定的数据库。mysql-uroot-p[pwd]--one-data......
  • MySQL查询性能优化七种武器之索引下推
    前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下:MySQL查询性能优化七种武器之索引潜水MySQL查询性能优化七种武器之链路追踪今天要讲的是MySQL的另一种查......