zoukankan      html  css  js  c++  java
  • 建表、约束、增删改

    建表


     语法:

      create table 表名(

        列名1  数据类型 (约束),

        列名2  数据类型,

        列名3  数据类型(约束),

        ....

        列名n  数据类型

      );

    删除表:drop table 表名;

    数据类型

    • 1.数字

        number(n)    数字类型,最大长度为n

        number(n,m)  数字类型,数字最大长度为n,小数部门为m

        integer         相当于  number(38)

    • 2.字符串

        char(n)    字符串,长度为n

          char(10):‘asdf’   不足10位用空白字符填充

         特点:

      • 优点:数据管理效率高
      • 缺点:空白字符浪费大量空间

        varchar2(n)  字符串,最大长度为n 

          varchar2(10):‘asdf’   放入后该数据长度就是4位

           特点:

      • 优点:节省数据存储空间 

       实例:

          名字  varchar2(100)

          手机号 char(11)

          邮箱  varchar2(200)

    • 3.日期

        date   日期

    约束


     

    • 1.主键约束   primary key

        含义:该列的值,唯一+非空

    • 2.唯一约束   unique

        含义:该列的值不能重复

        应用:手机号,身份证号

    • 3.非空约束 not null

        含义:该列的值,必须有值,不能为空

    • 4.检查约束 check

        手机号:mobile char(11) check(length(mobile)=11)

        邮箱    :email  varchar2(100) check(email like ‘%@%’)

        性别    :sex  number(1) check(sex in (0,1))  注释,1  男    0  女

     1 --创建一个员工表:工号(id) 名字 性别 手机号 邮箱 年龄 家庭住址 出生日期
     2 create table t_emp(
     3    id number(10) primary key,
     4    name varchar2(50),
     5    age number(3),
     6    sex number(1) check(sex in (0,1)),
     7    mobile char(11)  check(length(mobile)=11),
     8    email varchar2(100) check(email like '%@%'),
     9    address varchar2(200),
    10    birth date   
    11 );
    • 5.外键约束  forienkey

        关键词:refrences

          外键列:

            作用:表明当前表的数据和另一张表的数据的关系

          特点:

            1.通过外键关联表的数据

            2.该列的值,必须来源于另一张表的中字段的已存在的值

          语法:

    使用外键,关联关系
    
    --学生表(id,名字,成绩)
    create table t_stu(
      id number(10) primary key,
      stu_name varchar2(50),
      socre number(4),
      
      class_id number(10)  references t_class(id)  关联班级表中id的值 
           
    );
    
    
    --班级表(id,名称)
    create table t_class(
      id number(10) primary key,
      class_name varchar2(100)    
    );

    增删改SQL


     

    • SQL分类:

        DQL: Data Query Language 数据查询语言

         功能:查询数据  select

        DML:Data Manipulation Language  数据操纵语言

         添加 insert     修改 update    删除  delete

    • 添加数据

        关键词:insert

        语法规则:

    insert into 表名(字段1,字段2,字段3)
    values (值1,值2,值3);
    注意:表名后的字段顺序,必须和values后的值的顺序保持一致
    
    
    --向t_emp表中添加一条数据
    insert into t_emp(id,name,age,sex,mobile,email,address,birth)
    values (100,'华哥',18,1,'12345678910','123456789@qq.com','成都',to_date('2020-3-12','yyyy-mm-dd'));

        注意:

          1. 表名后的字段顺序,必须和values后的值的顺序保持一致

          2.表名后的列名可以省略,默认oracle会按照表的字段的顺序,全部罗列出来

    insert into t_emp
    values (101,'华哥2',18,1,'12345678920','123456789@qq.com','成都',to_date('2020-3-12','yyyy-mm-dd'));
    •  修改数据

         关键词:update

         语法规则:update  表名  set  列名=新值 , 列名=值,列名=值 (where 条件)

    --修改100号学生的年龄20,手机号‘45678912310’
    
    update t_emp set age = 20,mobile = '45678912310' where id = 100
    •  删除数据

        关键词:delete

        细节:逐行删除数据

        语法规则: delete from 表 (where 条件)

    --删除101号学生
    delete from t_emp where id = 101;
    • 删除全表:

      • 1.如果delete没有where,会导致全表数据删除

            逐行删除全表数据:delete from 表名

            特点:效率低

      • 2.表截断

            本质:直接将存储表数据部分的空间,直接清除,进而删除数据(非DML)

            truncate table 表名

            特点:效率远远高于delete

  • 相关阅读:
    .NET开发人员遇到Maven
    基于VS Code创建Java command-line app
    IntelliJ IDEA连接TFS local workspace无法正常签入
    Xcode连接TFS Git用户名和密码不正确解决方案
    Fiddler如何捕捉DefaultHttpClient的HTTP请求
    IIS 6的日志time-taken字段没有值的解决方案
    简单的音乐轮播JS
    SpringCloud分布式开发理解
    SpringCloud分布式开发五大神兽
    socket长连接和短链接区别
  • 原文地址:https://www.cnblogs.com/lhl0131/p/12463057.html
Copyright © 2011-2022 走看看