SQL 创建物理表

原创 2013年12月06日 09:39:04

 一、创建表操作
   1、设计表的结构    
      SQL 里的 create table 语句用于创建表。虽然创建表的实际操作十分简单,但在此之前,应该花更多的时间和精力来设计表的结构,这样可以节省反复修改表结构所浪费的时间。
     在创建表时,需要考虑以下一些基本问题:
        -> 表里会包含什么类型的数据?
        -> 表的名称是什么?
        -> 哪个(或哪些)列组成主键?
        -> 列(字段)的名称是什么?
        -> 每一列的数据类型是什么?
        -> 每一列的长度是多少?
        -> 表里哪些列可以是 NULL?
     考虑了这些问题之后,实际的 create table 命令就很简单了。
  2、create table 语句
    语法:create table 表名(
    列名1  列类型  [ 列的完整性约束 ],
    列名2  列类型  [ 列的完整性约束 ],
          ... ...   );
    叙述:在当前数据库下新创建一个数据表。
    列类型:表示该列的数据类型。
        例1:建立一个表 school,其由两列组成,第一列属性为非空、做为主键并自增。
        create table school
        (school_id   int(10)   not null  auto_increment  primary key,
        school_name  varchar(20) not null );
       例2:创建一张表,要求如下:
       * EMPLOYEE,字段分别为:ID 字符串类型,长度20;NAME 字符串类型,长度50;SEX 数值型;Data_Update 日期类型
       * 设置ID为主键
       CREATE TABLE EMPLOYEE
       (ID  VARCHAR(20) NOT NULL primary key,
       NAME  VARCHAR(50) NOT NULL,
       SEX  INTEGER(2) NOT NULL,
       Data_Update DATE  NULL );
 二、显示表结构操作
    语法:describe 表名;
           desc  表名;
    叙述:用于显示表的创建结构。
 三、更改表结构操作
        在表被创建之后,我们可以使用 alter table 命令对其进行修改。可以添加列、删除列、修改列定义、添加和去除约束等。       
    1、alter table 命令
    语法:alter table 表名 action;
    说明:action 可以是如下语句:
        -  add 列名 建表语句 [ first | after 列名 ]
         可以为表添加一列,如果没指定 first 或者 after,则在列尾添加一列,否则在指定列添加新列
        -  add primary key (列名)
         为表添加一个主键,如果主键已经存在,则出现错误
        -  add foreign key (列名) references 表名(列名)
         为表添加一个外键
        -  alter 列名 set default 默认值
         可以更改指定列默认值
        -  change 旧列名 新列名 <建表语句> [ first | after 列名 ]
         可以更改列类型和列名称,如果原列的名字和新列的名字相同
        -  modify 列名 <建表语句> [first | after 列名]和 change 的作用相同
        -  drop 列名,可以删除一列
        -  drop primary key,可以删除主键
        -  engine 类型名,可以改变表类型
        -  rename as 新表名,可以将表名更改
    2、操作举例
        例1:向 people 表中添加字段 address2 ,类型为 varchar,最大长度为100:
        alter table people add address2 varchar(100);
        例2:将 people 表中的 name 列默认值改为100:
        alter table people alter name set default 100;
        例3:向 student 表增加“入学时间”列,其数据类型为日期型。
         alter table student add scome date;
        注:无论基本表中原来是否已有数据,新增加的列一律为空值。
        例4:将年龄的数据类型改为半字长整数。
        alter table student modify sage smallint;
        注:修改原有的列定义有可能会破坏已有数据。
 四、删除表操作
        删除表是一种相当简单的工作,我们可以使用 drop  table 命令完成。
        语法:drop  table  [ if exists ]  表名 [ , 表名 ] ...
        叙述:从数据库中删除给定的表。如果给出 if exists 子句,则删除不存在的表不会出错。
        例:删除表 temp
         drop table temp;
        显示结果:Table dropped.
 五、设置主键
    1、主键的指定
        主键的作用在于表里每条记录都具有唯一的值。由于在下面的例子里 student 表里一般不会出现用多条记录表示一个学生的情况,所以学号 sid 可以作为 主键。主键是在创建表时指定的,可以在 create table 语句里的字段列表中指定,如上面 school 表里的 school_id;也可以在 create table 语句里的字段列表之后定义主键约束,如下例 student 表里的 sid。
        例:在创建学员信息表 student 时指定主键 sid 。
        create table student
       (sid  int  not null  auto_increment,
       name  varchar(20) not null,
       primary key(sid) );
   2、主键的选择      
        主键:帮助 MySQL 以最快的速度把一条特定数据记录的位置确定下来
 * 主键必须是唯一的
 * 主键应该是紧凑的,因此整数类型比较适合
       选择主键的原则:
 * 最少性:尽量选择单个键作为主键
 * 稳定性:尽量选择数值更新少的列作为主键


SQL 创建物理表

一、创建表操作    1、设计表的结构           SQL 里的 create table 语句用于创建表。虽然创建表的实际操作十分简单,但在此之前,应该花更多的时间和精力来设计表的结构,这样...
  • u011528810
  • u011528810
  • 2013年12月06日 09:39
  • 774

第一招:Powerdesigner15-物理模型-导出建表sql语句

 Powerdesigner15-物理模型-导出建表sql语句   1.设置哪种数据库导出的sql语句,设置数据库类型       2.导出sql语句   ...
  • Gavid0124
  • Gavid0124
  • 2015年06月02日 21:33
  • 1067

普通物理表、临时表和TABLE(函数)的执行效率对比

普通物理表、临时表和TABLE的用途各不相同,普通表一般存放需要长期保存的数据,临时表存放某个事务或会话过程中的临时数据,array是oracle中的数组,也可以用于存放临时数据,或在OODB中使用。...
  • lingzihan1215
  • lingzihan1215
  • 2012年04月09日 11:25
  • 1241

sql 逻辑 ORACLE优化

1.查最新 有2个站点 CR_OPE_ID_FK  IN  ('M310','M330'),查询A站点NG的PRD_SEQ_ID,并显示2个站点同ID的最新状况(如果也是NG) S...
  • xufan601391682
  • xufan601391682
  • 2018年01月11日 10:08
  • 21

sql server系统表详细说明

sysaltfiles  主数据库 保存数据库的文件 syscharsets  主数据库字符集与排序顺序 sysconfigures 主数据库 配置选项  syscurconfigs ...
  • diligentcat
  • diligentcat
  • 2016年09月04日 08:13
  • 1363

手把手教你建立SQL数据库的表分区

  • 2013年01月29日 22:23
  • 448KB
  • 下载

SQL语言创建数据库和学生表

建立:create database zxl create table 学生表 ( 学号 char(12) primary key, 姓名 char(6) not null, 性别 char(2) ...
  • a771948524
  • a771948524
  • 2013年05月07日 13:08
  • 4195

[sql server][基础] 多表关联创建

if object_id('tableCD') is not null drop table tableCD---多对多要加个中间表goif object_id('tableD') is not nu...
  • xys_777
  • xys_777
  • 2010年07月26日 16:16
  • 2514

powerDesigner 创建数据库表并导出sql

最近接了一个新项目。项目架构用了jdbc连接数据库,数据库用orcal.以前用习惯了hibernate自动生成表。现在还要设计表,项目时间还比较紧,真心觉得麻烦。 没办法【兵来将挡,水来土掩】。 1....
  • zy846771221
  • zy846771221
  • 2016年08月12日 15:06
  • 1405

【代码生成】sqlserver系统表说明

【前言】 近日,需要用c#写一个自动生成存储过程访问代码的小工具,查到下面这一篇东西,再加上sql语句可以直接获得存储过程的参数列表,一切尽在掌握。 http://www.cnblogs....
  • cdnight
  • cdnight
  • 2013年06月23日 19:34
  • 986
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL 创建物理表
举报原因:
原因补充:

(最多只允许输入30个字)