我这里用的是oracle 10g,PL/SQL来做的。

第17课  创建和操纵表  145
17.1  创建表  145
17.2  更新表  150
17.3  删除表  153
17.4  重命名表  153
17.5  小结  154
第17章 创建和操纵表
  17.1 创建表
            17.1.1 表创建:所有列放在小括号里面,各列之间用英文逗号隔开,最后一列后面没有逗号,小括号后面以英文分号结束。
                              create table vendors(
                                   vend_id         char(10) not null ,
                                   vend_name    char(50) not null ,
                                   vend_address char(50) null ,
                                   vend_city      char(50) null ,
                                   vend_state    char(5)  null ,
                                   vend_zip       char(10) null ,
                                   vend_country char(50) null
                              );  
            17.1.2 使用null值 :
                              a,注意null值表示没有值或者缺值。空字符串('')是一个有效的值,它不是无值。
                              b,表里面的每一列要么是null列,要是是非null列,这是在创建表的时候,表的定义规定的。默认的是null.
                              c,只用指定不允许为null的列才可用于主键。主键是一列(或一组列),其值能够唯一标识表中的每一列。
                          
            17.1.3 制定默认值:default
                              默认值常用于日期或者时间戳列,通常是把系统日期用作默认日期。
                              获得系统日期
                                MySQL用户:select sysdate();
                                Oracle用户: select sysdate from dual;
  17.2 更新表 :使用alter table时需要考虑的内容。
                    假如现有表student,

create table student(

  snum number not null,

  sname varchar2(100),

  age number

);

对现有表新增一列或者多列:
                    alter table student add sex char(1);
                    alter table student add (address varchar2(100), email varchar2(50));

对现有表新增加主键:alter table 表名 add constraint 约束名 primary key(列名);
                    alter table student add constraint pk_student primary key(snum);
    
                    对现有表删除其中的某一列:alter table 表名 drop column 列名;     alter table student drop column age;
                   
            复杂的表结构更改一般需要手动删除过程,它涉及以下步骤:
                 1、复制旧表到一个新表,create table new_table as select * from old_tables;
                 2、检验包含所需数据的新表
                 3、重命名旧表(如果确定,可以删除它)
                 4、用旧表原来的名字重新命名新表
                 5、根据需要,重新创建新表的触发器、存储过程、索引和外键。

 17.3 删除表 :删除整个表,而不是删除表里面的内容:drop table 表名;      drop table student;           
删除某列:alter table 表名 drop column 列名;     alter table student drop column age;  
 
17.4 重命名表名 : alert table 现表名 rename to 新表名;    alter table student rename to test123;          
          修改列名:alert table 表名 rename colunm 列名 to 新列名;   alter table student rename column name to sname;
*********************************************************************************************************
这一课练习所用到的sql有: 创建表

create table student(
       id number not null,
       name varchar2(100),
       age number
);
 
alter table student add sex char(1);    新增一列
alter table student add (address varchar2(100), email varchar2(50));   新增多列
alter table student add constraint pk_student_snum primary key(id);   新增主键
alter table student rename column name to sname;    修改列名
alter table student rename to test123;   修改表名
alter table student drop column age;   删除某一列
drop table student;  删除表

SQL 必知必会-- 第17课:创建和操作表的更多相关文章

  1. SQL 必知必会

    本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...

  2. 你必知必会的SQL面试题

    写在前面的话 本文参考原博<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 1>和<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 2>进行练习 ...

  3. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  4. 图灵程序设计丛书(SQL必知必会)笔记

    SQL必知必会 第二课:检索数据 1.分页 (1).SQL Server 栗子 : select top 2 columns from tableName (2).Oracle 栗子 :select ...

  5. .NET零基础入门09:SQL必知必会

    一:前言 仿佛到了更进一步的时候了,每一个程序员迟早都会遇到数据存储的问题.我们拿什么来存储程序产生的数据?举例来说,用什么来存储我们的打老鼠游戏每次的成绩呢?选择如下: 1:内存中.缺点,退出游戏, ...

  6. SQL 必知必会 总结(一)

    SQL必知必会 总结(一) 第 1 课 了解SQL 1.数据库(database): 保存有组织的数据容器(通常是一个文件或一组文件). 2.数据库管理系统(DBMS): 数据库软件,数据库是通过 D ...

  7. SQL必知必会 -------- SELECT、注释

    主要是看<SQL必知必会>第四版的书,而写的一些SQL笔记,红色的是方便以后查询的sql语句,工作中主要是使用mysql数据库,所以笔记也是围绕mysql而写的. 下文调试的数据表sql语 ...

  8. 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作

    上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值.利用LIMIT/OFFSET子句限制结果:以及利用ORDER BY子句排序检索出的数据,主 ...

  9. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

随机推荐

  1. KMP算法——Javascript实现

    腾讯和阿里的笔试刚过去了,里面有很多题都很值得玩味的.之前Blog积累的很多东西,还要平时看的书,都有很大的帮助.这个深有体会啊! 例如,腾讯有一道算法题是吃香蕉(好邪恶的赶脚..),一次吃一根或者两 ...

  2. 技术文集:万能WINDOWS XP封装

    这里将系统封装分为3步:做系统.封装.部署 一.做系统 平台不限,但不建议在虚拟机上制作.CPU及主板芯片没有限制,关于intelide和intelppm的不兼容问题,深度白金3in1并没有删除这些注 ...

  3. P67、H67、H61、P55、H57、H55 区别

    Intel平台上我们现在已经有了LGA775.LGA1366.LGA1156三种封装接口,SNB还会带来两种,包括今天要看到的LGA1155(取代LGA1156),以及明年下半年的高端LGA2011, ...

  4. LeetCode 刷题记录

    写在前面:因为要准备面试,开始了在[LeetCode]上刷题的历程.LeetCode上一共有大约150道题目,本文记录我在<http://oj.leetcode.com>上AC的所有题目, ...

  5. Linux coredump

    前面写过通过注册信号处理函数定位SEGV问题.其实Linux coredump机制也是比较好的debug手段. 进程由于某种异常或者bug导致在运行过程中异常退出或者中止,有时会产生一个叫做core的 ...

  6. 深入理解JavaScript-replace

    replace方法是属于String对象的,可用于替换字符串. 简单介绍: StringObject.replace(searchValue,replaceValue) StringObject:字符 ...

  7. Linux系统编程——进程间通信:命名管道(FIFO)

    命名管道的概述 无名管道,因为没有名字,仅仅能用于亲缘关系的进程间通信(很多其它详情.请看<无名管道>).为了克服这个缺点.提出了命名管道(FIFO).也叫有名管道.FIFO 文件. 命名 ...

  8. Codeforces Round #338 (Div. 2) B. Longtail Hedgehog dp

    B. Longtail Hedgehog 题目连接: http://www.codeforces.com/contest/615/problem/B Description This Christma ...

  9. VK Cup 2012 Qualification Round 1 C. Cd and pwd commands 模拟

    C. Cd and pwd commands Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset ...

  10. 简短介绍 C# 6 的新特性 .net 6都要来了?

    几周前我在不同的地方读到了有关C#6的一些新特性.我就决定把它们都收集到一起,如果你还没有读过,就可以一次性把它们都过一遍.它们中的一些可能不会如预期那样神奇,但那也只是目前的更新. 你可以通过下载V ...