网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

sql_constraint

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:网学会员为您提供sql_constraint参考,解决您在sql_constraint学习中工作中的难题,参考学习。


    约束种类
    每一种约束的作用的了解演示。
    
    非空约束
    唯一性约束
    检查约束
    主键约束--每个表要有主键,唯一的标识一行数据,主键的特点非空并且唯一
    外键约束外键引用的列一定是主键或有unique约束的列
    
    脚本(SCRIPT)
    列级约束并且非空约束(非空约束的特点是不能为null)
    createtablecla(--班级表
    idintprimarykey,--班级编号
    cnamevarchar(20)notnull--班级名字
    );
    
    altertableclaaddageintdefault20;
    
    
    
    唯一性约束
    createtableclauni(
    idint,
    namevarchar(20)unique,
    ageint
    );
    
    
    insertintoclauni(id,name,age)values(1,'zhang',20);
    insertintoclauni(id,name,age)values(1,null,20);
    insertintoclauni(id,name,age)values(1,'zhangs',20),(2,'lisi',20);
    
    
    表级约束的定义
    形式一:
    createtableclaunit(
    idintunique,
    namevarchar(20),
    ageintdefault0,
    constraintclaunit_name_uniquekunique(name)
    );
    
    insertintoclaunit(id,name,age)values(1,'zhang',30),(2,'zhang',30);
    
    形式二:
    createtableclaunit1(
    idintunique,
    namevarchar(20),
    ageintdefault0,
    unique(name)
    );
    
    形式三:
    
    createtableclaunit2(
    idintunique,
    namevarchar(20)unique,
    ageintdefault0
    );
    
    altertableclaunit2addconstraintcla_age_ukunique(age);
    约束字符
    创建带主键的,自动增长的id列
    createtabledepttest(
    idintprimarykeyauto_increment,
    namevarchar(255)
    );
    createtablejfw(
    idintnotnullunique,//列级约束
    namevarchar(20),
    constraintjfw_name_uniqunique(name)//表级约束
    );
    
    altertablejfwwaddjobvarchar(20);
    altertablejfwwaddconstraintjfww_job_unikunique(job);//插入约束的另一种方式
    createtablestudent(
    firstnamevarchar(20),
    lastnamevarchar(20),
    constraintstudent_f_l_prikprimarykey(firstname,lastname)
    );//创建联合主键
    
    
    
    
    主键
    联合主键表级定义
    createtablestudent(
    firstnamevarchar(20),
    lastnamevarchar(20),
    addressvarchar(20),
    constraintstudent_prikeyprimarykey(firstname,lastname)
    );
    
     insertintostudent(firstname,lastname,address)values('zh','wei','nj'),('zh','wei','bj');
    
     列级定义
     createtablestudent1(
     idintprimarykey,
     namevarchar(20)
     );
     insertintostuden
    t1(id)values(1),(1);
    
    
    check表达式
    
    createtablestudent2(
    idintprimarykey,
    namevarchar(20),
    ageintcheck(age>18)
    )
    
    
    
    创建外键:
    createtablestu(
    cidint,
    namevarchar(20),
    ageint
    )ENGINE=InnoDB;//子表必须为InnoDB型存储引擎
    createtableclass(
    cidint,
    banjicarchar(20),
    managervarchar(20)
    )ENGINE=InnoDB;//主表必须为InnoDB型存储引擎
    altertableclassmodifyidintprimarykey;//主表外键列名必须为主键。
    insertintoclassvalues(2,'test','chenzhen');
    insertintoclassvalues(1,'java','zhangbin');
    altertablestuaddconstraintstu_cid_forkforeignkey(cid)referencesclass(cid);//创建外键
    /*altertableclassENGINE=InnoDB;//修改存储引擎,创建外键后,主子表必须为InnoDB型存储引擎*/
    
    showcreatetablestu\g;//显示表的详细信息:
    
    altertableempzwaddconstraintempzw_deptno_fkforeignkey(deptno)referencesdept(deptno);
    //创建外键
    
     删除外键
     altertableempzwdropforeignkeyempzw_deptno_fk;
    创建新的外键
    altertableempzwaddconstraintempzw_deptno2_fkforeignkey(deptno)referencesdeptzw(deptno)
    ondeletecascade
    onupdatecascade;
    
    altertableempzwdropforeignkeyempzw_deptno1_fk;
    
    altertableempzwaddconstraintempzw_deptno3_fkforeignkey(deptno)referencesdept(deptno)
    ondeletecascade;
    altertableemptestaddconstraintempzw_dept_fkforeignkey(deptno)referencesdeptzw(deptno)
    ondeletecascade;
    
    altertableempxhaddconstraintempxh_deptno_fk1foreignkey(deptno)referencesdeptxh(deptno)ondeletecascade;
    如何删除约束
    
    altertablestudentdropconstraintfk_stu;//没能成功!!
    可以用一个统一的格式来删除
    altertable表名dropconstraint约束名
    主键=非空+唯一
    非空
    唯一=有值的话值要不同
    外键=有值一定要在被引用的表的数据中
    
    
    复习:sql语言包括的几部分:
    《1》DDL语句(数据定义语言)DataDefineLanguage
    create
    alter
    drop
    truncate
    truncatetable<表名>
    
    特点:<1>建立和修改数据对象
    <2>建立和修改直接存入库中,直接生效
    建立表
    createtableclass(--班级表
    classidnumber(2)primarykey,
    cnamevarchar2(20)notnull);
    
    altertablestudentadd(shengfenzhengnumber(18));
    droptablestudent;删除结构
    
    deletefromstudent;只删除数据,速度慢,数据可以恢复
    truncatetablestudent;删除记录的速度快数据不能恢复
    《2》DML语句(数据操作语言)DataManupilateLanguage
    select
    insert
    delete
    update
    《3》TCL(事务控制语句)TransactionControlLanguage
    
    《4》DCL语句(数据控制语句)DataControlLanguage
    select*fromclass,stu;
    select*fromclass,stuwherestu.id=class.id;
    selectc.id,c.banji,c.banzhu,s.namefromclassc,stuswheres.id=c.id;//c,s是别名,多表查询。
    selectc.id,c.banji,c.banzhu,s.namefromclasscinnerjoinstusons.id=c.id;//内连接,作用同上。
    selectc.id,c.banji,c.banzhu,s.namefromclasscleftouterjoinstusons.id=c.id;//左外连接,将连接的左边的表格中所有数据取出与右边匹配。
    selectc.id,c.banji,c.banzhu,s.namefromclasscrightouterjoinstusons.id=c.id;//与上相反。
    selecte.empno,e.ename,e.mgr,em.empno,em.enamefromempe,empemwhereem.empno=e.mgr;//自连接。很强大!!
    select*fromempwheresal>(selectavg(sal)fromemp);//子查询
    selectd.enameasselfname,(selectc.enamefromempcwherec.empno=d.mgr)asmanegerfromempd;//子查询!!
    
  • 上一篇资讯: sql_log
  • 下一篇资讯: sqlxuexi
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师