zoukankan      html  css  js  c++  java
  • 约束、非空、唯一、主键、自增长、外键、多表查询、联合查询

    注意:

    创建数据库全部用小写 超11位不能用int

    数据约束
    默认值约束:允许插入null和非null

    CREATE TABLE student(

    id INT,

    NAME VARCHAR(20),

    address VARCHAR(20) DEFAULT '山东淄博'  -- 默认值

    )

    DROP TABLE student;

    -- 当字段没有插入值的时候,mysql自动给该字段分配默认值

    INSERT INTO student(id,NAME) VALUES(1,'张三');

    -- 注意:默认值约束可以是多个,必须是建表时加

    INSERT INTO student(id,NAME,address) VALUE(2,'李四',NULL);
    非空:必须赋值 必须不能赋值为null

    gender字段必须有值(不为null)

    CREATE TABLE student(

    id INT,

    NAME VARCHAR(20),

    gender VARCHAR(2) NOT NULL -- 非空

    )

    非空字段必须赋值

    INSERT INTO student(id,NAME) VALUES(1,'李四');

    -- 非空字符不能插入null

    INSERT INTO student(id,NAME,gender) VALUES(1,'李四',NULL);


    唯一:unique 可插入多个null

    CREATE TABLE student(

    id INT UNIQUE, -- 唯一

    NAME VARCHAR(20)

    )


    主键:primary key 非空+唯一

    CREATE TABLE student(

    id INT PRIMARY KEY, -- 主键

    NAME VARCHAR(20)

    )

    INSERT INTO student(id,NAME) VALUES(1,'张三');

    INSERT INTO student(id,NAME) VALUES(2,'张三');

    -- INSERT INTO student(id,NAME) VALUES(1,'李四'); -- 违反唯一约束: Duplicate entry '1' for key 'PRIMARY'

    -- insert into student(name) value('李四'); -- 违反非空约束: ERROR 1048 (23000): Column 'id' cannot be null
    自增长:primary key auto_increment

    CREATE TABLE student(

    id INT(4) ZEROFILL primary key auto_increment, -- 自增长,从0开始  ZEROFILL 零填充

    NAME VARCHAR(20)

    )

    delete 不影响自增长  truncate 影响自增长

    外键:
    主表:约束  副:被约束
    顺序:添加是先主后副  修改和删除 是先副后主

    员工表

    CREATE TABLE employee(

    id INT PRIMARY KEY,

    empName VARCHAR(20),

    deptName VARCHAR(20) -- 部门名称

    )

    INSERT INTO employee VALUES(1,'张三','软件开发部');

    INSERT INTO employee VALUES(2,'李四','软件开发部');

    INSERT INTO employee VALUES(3,'王五','应用维护部');


    多表查询:至少两个连接起来 join

    from 表1  [连接方式]  join 表2  [on 连接条件]
    交叉:没有on条件

    from  表1  [cross]  join  表2  ;      //可见交叉连接只是没有on条件而已。


    内:数据连接 from 表 join 表2 on 表1.字段1=表2.字段2
    左右外连接:from 表1 left(right) join 表2 on where
    子查询:吧一个查询的结果当做另一个查询的条件
    联合查询:union 两个相同字段的语句结果放到一起的大结果
    select 1
    union
    select 2

  • 相关阅读:
    Sql Server数据库使用触发器和sqlbulkcopy大批量数据插入更新
    树莓派安装系统
    ubuntu设置ulimit
    aws申请ec2实例后如何用root用户登录
    python-redis
    Windows Server多用户同时远程登录
    ansible-常用模块
    ansible安装-本机测试
    cmdb实现三种方式
    linux-crond_计划任务
  • 原文地址:https://www.cnblogs.com/zs0322/p/10812199.html
Copyright © 2011-2022 走看看