创建表和添加表约束

 一、标准的建表语法

    CREATE TABLE 表名
    (列名 数据类型 [默认 表达式],...
    );

说明:
    1.在创建新表时,指定的表名必须不存在,否则会出错
    2.使用值: 当插入行时如果不给出值,dbms将自动采用默认值   dbms:数据库管理系统 null 0 0.0
    3.在使用create语句创建基本表时,最初只是一个空的框架,用户可以使用insert命令把数据库插入表中

    数据库表字段的数据类型
     字符数据类型
          CHAR:存储固定长度的字符串
          VARCHAR2 :存储可变长度的字符串   

    数值数据类型
       NUMBER:存储整数和浮点数,格式为NUMBER(p, s)
          列名  NUMBER
          列名  NUMBER (p)              {整数}   number (10)   zhengshu
          列名  NUMBER (p, s)            {浮点数}    number (5,3)   11.111

    日期时间数据类型
        DATE:存储日期和时间数据
        TIMESTAMP:比DATE更精确  

    LOB数据类型
        BLOB:存储二进制对象,如图像、音频和视频文件
        CLOB:存储字符格式的大型对象 

  --创建表
  CREATE TABLE STUDENT(
        SNO NUMBER(6),
        SNAME VARCHAR2(20),
        SEX VARCHAR2 (2),
        AGE NUMBER(3),
        ENTERDATE DATE,
        CLAZZ VARCHAR2 (10)
  );

   --EMAIL VARCHAR2(20)
  SELECT * FROM STUDENT;

  --插入数据
  INSERT INTO STUDENT VALUES(1001,‘羽毛‘,‘男‘,-10,sysdate,‘01级02班‘);
    INSERT INTO STUDENT(sno,sex,age) VALUES(1001,‘男‘,-100);

  --像已有表中添加一个列()
  ALTER TABLE STUDENT ADD ADDRESS VARCHAR2 (20);

  --以下代码要求表中没有数据,因为如果表中存在数据,那么已存在的数据列email讲使用null填充
  ALTER TABLE STUDENT ADD EMAIL VARCHAR2(20) NOT NULL;

  --插入数据sno,sname,email
  INSERT INTO student(sno,sname) VALUES (110,‘缺一个‘); 

  --将已有表中的列删除  column--列  table -表
  ALTER TABLE STUDENT
  DROP COLUMN EMAIL;

  --将已有表中的列进行修改,默认只对新添加的数据起作用   modify
  ALTER TABLE STUDENT
  MODIFY (SEX VARCHAR2(4) DEFAULT ‘男‘);

  --对已有表中的列名重命名
  ALTER TABLE STUDENT
  RENAME COLUMN SNAME TO STU_NAME;

  --给表重命名
  RENAME STUDENT TO STU ;

  SELECT * FROM STU;

DROP TABLE STUDENT;
DROP TABLE STU;

--小结:
     --insert--> 向已有表中插入数据  -->操作数据
     --add  -->向表中添加列  -->操作的表结构

     --update -->对已有表中的数据进行修改
     --modify -->修改表中的列

     --delete -->删除表中的数据
     --drop -->删除表

  二、表约束

  数据完整性约束

    1.表的数据有一定的取值范围和联系,多表之间的数据有时也有一定的参照关系。
    2.在创建表和修改表时,可通过定义约束条件来保证数据的完整性和一致性。
    3.约束条件是一些规则,在对数据进行插入、删除和修改时要对这些规则进行验证,从而起到约束作用。

  完整性约束分类
    域完整性约束(非空not null,检查check)字段约束
    实体完整性约束(唯一unique,主键primary key) 行和行之间的约束
    参照(引用)完整性约束(外键foreign key) 表和表之间的约束

  主键约束 (primary key) PK_表名_字段名
    要求主键类数据唯一,并且不允许为空,主键可以包含表的一列或多列,多列组成的主键称之为-复合主键
  唯一约束(unique) UK_表名_字段名
    要求该列值唯一,允许为空,而且null可以是多个
  检查约束 (check) CK_表名_字段名
    某列取值范围显示,格式限制等,如年龄拘束,邮件限制 email like ‘%@%‘ --length (pwd) =6
  非空约束(not null) NN_表名_字段名
    某列内容(值)不为空
  外键约束(foreign key) FK_表名_字段名
    用于两个表之间建立关系,需要制定引用主表的那列,外键同创是用来约束两个表之间的数据关系
    定义外键的那张表称之为子表,另一张表称之为主表,在表的创建过程中,应该先创建主表,后创建子表

原文地址:https://www.cnblogs.com/SacredOdysseyHD/p/9063274.html

时间: 2024-08-29 22:11:37

创建表和添加表约束的相关文章

MSSQL创建表时添加说明

示例: IF OBJECT_ID('MemberExt1') IS NOT NULL DROP TABLE MemberExt1 GO CREATE TABLE MemberExt1 ( MemberId INT NOT NULL, QRImage NVARCHAR(500) , Url NVARCHAR(500) ) EXEC sp_addextendedproperty N'MS_Description', N'记录Member的二维码和个人推荐URL', N'user', N'dbo',

oracle 创建表同时添加注释

创建数据库表.添加注释的方法: create table WARNINGRECORD ( RecordID varchar(36) primary key not null ); comment on column WARNINGRECORD.RecordID is '告警编号'; 现在想通过pl/sql语句块执行,代码如下: declare tableExist number; begin Select count(1) into tableExist from all_tables wher

数据库基本操作(创建表和添加触发器)

测试(从头开始走一遍流程): 1)创建Person表: [sql] view plaincopy drop table person; create table person( id int NOT NULL AUTO_INCREMENT primary key, name varchar(8) not null, sex bit, age int check(age > 0 and age < 200), addr varchar(100) default '' not null ); se

SQLite创建表并添加数据

- (void)viewDidLoad { [super viewDidLoad]; //创建表 [self creatTable]; //插入数据 [self insertTable]; } // -----------------------创建一个表-------------------- - (void)creatTable { // 1.创建一个数据库对象 sqlite3 *sqlite3 = nil; // 2.数据库的路径 NSString *path = [NSHomeDirec

创建表并添加约束

--创建学生表并创建约束 create table Student ( StuNo int identity(1,1) primary key(StuNo),     --identity:自增列primary Key:主键约束 StuName nvarchar(20)  unique(StuName),       --unique:唯一约束 Birthday datetime check(Birthday>GetDate()),   --check:检查约束 Address nvarchar

oracle创建表并添加主键,设置主键自增长

oracle序列详解和创建自增主键 Oracle序列主键 序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l 自动提供唯一的数值 l 共享对象 l 主要用于提供主键值 l 将序列值装入内存可以提高访问效率 1.首先创建序列,Oracle序列的语法格式为: CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUEn|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n

mysql sql数据库基本操作(创建表,添加字段等)

1.check表里添加update_time字段 ALTER TABLE `check` ADD `update_time` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '上一次更新的时间' AFTER `operator` ; 2.

使用sql创建表并添加注释

Create table T_ErrorLogTable_tb ( ELTID int identity(1,1) primary key,--编号 ELTTime date,--错误发生日期 ELTAddress nvarchar(50),--错误发生地址 ELTMessage nvarchar(200)--错误发生信息 )--表注释 @value为注释内容 @leve12name为注释表名 EXEC sys.sp_addextendedproperty @name=N'MS_Descript

Oracle创建表,并添加默认值和备注

create table testemp( id varchar2(50) default sys_guid(),deptno varchar2(20) ,--部门编码 ename varchar2(20),--人名 sal number(10)--工资 ) ----表名描述comment on table testemp is '测试专用表';----字段备注comment on column testemp.deptno is '部门编码';comment on column testemp