建表、约束、增删改

建表


 语法:

  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

 

posted @ 2020-03-12 15:21  华哥好棒棒  阅读(181)  评论(0编辑  收藏  举报