• MySQl数据约束练习



    默认值约束

     
     1 CREATE TABLE USER(
     2      uid INT,
     3      uname   VARCHAR(10),
     4      address   VARCHAR(30) DEFAULT '山东省'
     5 )
     6 DROP TABLE USER;
     7 SELECT * FROM USER;
     8 INSERT INTO USER(uid,uname) VALUES(1,'张三');
     9 INSERT INTO USER VALUES(2,'李四','河南省');
    10 INSERT INTO USER VALUES(3,'李四',NULL);
     

    非空约束

     
    1 CREATE TABLE USER(
    2      uid INT NOT NULL,
    3      uname   VARCHAR(10),
    4      address   VARCHAR(30) DEFAULT '山东省'
    5 )
    6 INSERT INTO USER(uid,uname) VALUES(1,'张三');
     

    唯一约束

     
    1 CREATE TABLE USER(
    2      uid INT UNIQUE,
    3      uname   VARCHAR(10),
    4      address   VARCHAR(30) DEFAULT '山东省'
    5 )
    6 INSERT INTO USER(uid,uname) VALUES(1,'张三');
    7 INSERT INTO USER(uid,uname) VALUES(2,'张三');
     

    主键约束(唯一+非空)

              1)被约束的表称为副表,约束别人的表称为主表,外键设置在副表上的!!!

              2)主表的参考字段通用为主键!

              3)添加数据: 先添加主表,再添加副表

              4)修改数据: 先修改副表,再修改主表

              5)删除数据: 先删除副表,再删除主表

     一个表内只能有一个主键。

     
    1 CREATE TABLE USER(
    2      uid INT  PRIMARY KEY,
    3      uname   VARCHAR(10),
    4      address   VARCHAR(30) DEFAULT '山东省'
    5 )
    6 SELECT * FROM USER;
    7 INSERT INTO USER(uid,uname) VALUES(1,'张三');
     

     自增长约束AUTO_INCREMENT

     
    1 CREATE TABLE USER(
    2      uid INT  PRIMARY KEY AUTO_INCREMENT,
    3      uname   VARCHAR(10),
    4      address   VARCHAR(30) DEFAULT '山东省'
    5 )
    6 INSERT INTO USER(uname) VALUES('张三');
     

     零填充

     
    1 CREATE TABLE USER(
    2      uid INT(3) ZEROFILL  PRIMARY KEY AUTO_INCREMENT,
    3      uname   VARCHAR(10),
    4      address   VARCHAR(30) DEFAULT '山东省'
    5 )
    6 INSERT INTO USER(uname) VALUES('张三');
     

    delete from 清空表不能删除约束

    1 DELETE FROM USER;

    TRUNCATE TABLE 清空表可以删除约束

    1 TRUNCATE TABLE USER;

     外键约束(约束两种表的数据)

     
     1 CREATE  TABLE dept(
     2          deptid INT PRIMARY KEY AUTO_INCREMENT,
     3          deptname VARCHAR(10)
     4 )
     5 INSERT INTO dept(deptname) VALUES('软件开发部');
     6 INSERT INTO dept(deptname) VALUES('软件测试部');
     7 INSERT INTO dept(deptname) VALUES('软件运维部');
     8 SELECT * FROM dept;
     9 CREATE TABLE empt(
    10        eid  INT PRIMARY KEY AUTO_INCREMENT,
    11        ename  VARCHAR(5),
    12        deptid INT,
    13        CONSTRAINT dept_empt_fk FOREIGN KEY(deptid) REFERENCES dept(deptid)
    14 )
     

    新增副表

    1 INSERT INTO empt(ename,deptid) VALUES('张三',1);
    2 SELECT * FROM empt

    修改主表

    1 UPDATE dept SET deptname=2 WHERE deptid=1;
    2 UPDATE empt SET deptid=3 WHERE eid=1;

    删除主表

    1 DELETE FROM dept WHERE deptid=2;
  • 相关阅读:
    Min25 筛与 Powerful Numbers
    「CF576D」 Flights for Regular Customers
    「CF568C」 New Language
    「CF559E」 Gerald and Path
    「CF555E」 Case of Computer Network
    20210604
    20210603模拟赛总结
    20210602模拟赛总结
    CF603E 整体二分
    20210601模拟赛总结
  • 原文地址:https://www.cnblogs.com/qq1312583369/p/10223176.html
Copyright © 2020-2023  润新知