zoukankan      html  css  js  c++  java
  • 69期-Java SE-032_MySQL-3 MySQL运算符、表设计

    MySQL 运算符
    
    1、算术运算符
    
    ​        执行运算符:加减乘除
    
    ```sql
    select score/10 from user where id = 3;
    ```
    
    ​        比较运算符:大于、等于、小于、不等于
    
    ```sql
    select score != 100 from user where id = 3;
    ```
    
    ​        逻辑运算符:与 或 非
    
    ```sql
    select score < 100 && score > 60 from user where id = 3;
    ```
    
    2、特殊运算符
    
     is null 判断数据是否为空
    
    ```sql
    select name is null from user where id = 5;
    ```
    
    between and 判断值是否在某个区间之内
    
    ```sql
    select name,score between 90 and 100 from user;
    ```
    
    ```sql
    select name,score >= 90 && score <= 100 from user;
    ```
    
    in 判断值是否在某个确定值的集合内
    
    ```sql
    select name,score from user where id in (1,2,3);
    ```
    
    ```sql
    select name,score from user where id = 1 or id = 2 || id = 3;
    ```
    
    like 模糊查询
    
    以"水"开头
    
    ```sql
    select * from easybuy_product where name like '水%';
    ```
    
    以"水"结尾
    
    ```sql
    select * from easybuy_product where name like '%水';
    ```
    
    包含"水"
    
    ```sql
    select * from easybuy_product where name like '%水%';
    ```
    
    长度为2,一个"_"表示一个长度
    
    ```sql
    select * from easybuy_product where name like '__';
    ```
    
    包含"水",同时长度为 3
    
    ```sql
    select * from easybuy_product where name like '_水_';
    ```
    
    以"水"开头,同时长度为3
    
    ```sql
    select * from easybuy_product where name like '水__';
    ```
    
    以"水"结尾,同时长度为3
    
    ```sql
    select * from easybuy_product where name like '__水';
    ```
    
    
    
    ### 表设计
    
    将某个具体的对象进行抽象化处理,分离出它的基本结构,然后用数据表的形式来描述它,一个字段用来描述一个具体的静态特征。
    
    Computer{
    
    id:1,
    
    brand:"联想",
    
    price:5000,
    
    color:"黑色",
    
    memory:16GB
    
    }
    
    主键
    
    ​    表中的一个字段,该字段的值是每一行数据的唯一标识,相当于一个人的身份证号,主键是不可以重复的,数据库区分不同的数据,可以通过主键来区分。
    
    默认情况下,每张表都应该有一个主键,同时一张表只能有一个主键,所谓的一张表多个主键,指的是联合主键,多个字段共同作为一张表的主键。
    
    主键的生成策略,代理主键,与业务无关,仅仅是用来标识一行数据。一般定义为 int 类型,因为 int 类型存储空间小。
    
    ```sql
    use mstest;
    create table user(
      id int primary key auto_increment,
      name varchar(11),
      score float
    );
    ```
    
    外键
    
    ​    将表中的一个字段设置为外键,与其他表的主键建立约束关系,A 表的主键约束 B 表的外键,B 表外键的取值范围需要由 A 表的主键值来决定,外键值的必须等于主键的值,主外键是建立两张数据表关联关系非常重要的一个手段,一旦两张表建立了主外键关联关系,则外键所在的表就叫做从表,约束从表的就是主表。
    
    ```sql
    create table address(
      id int primary key auto_increment,
      name varchar(11),
      uid int,
      foreign key(uid) references user(id)
    );
    ```
    
    ```sql
    alter table address add uid int;
    alter table address add foreign key(uid) references user(id);
    ```
    
    删除外键
    
    ```sql
    alter table address drop foreign key address_ibfk_1;
    ```
    
    
    
    一对一:身份证号和人
    
    一对多:班级和学生
    
    多对多:学生和选课
    
    
    
    一对多:
    
    要给两张表建立一对多关系,只需要给两张表设置主外键关联关系即可,给多的一方设置外键,被一的一方的主键所约束,多的一方就是从表,一的一方就是主表,user 就是主表,address 就是 user 的从表。
    
    ```sql
    select * from address where uid = (select id from user where name = "张三");     #嵌套查询
    ```
    
    ```sql
    select * from user,address where user.name = "张三" and address.uid = user.id;    #关联查询
    ```
  • 相关阅读:
    c++,为什么要引入虚拟继承
    Linux分页机制之分页机制的演变--Linux内存管理(七)
    调度器增强
    Linux分页机制之概述--Linux内存管理(六)
    Linux内存描述之高端内存--Linux内存管理(五)
    Linux内存描述之内存页面page--Linux内存管理(四)
    Linux内存描述之内存区域zone--Linux内存管理(三)
    Linux内存描述之内存节点node--Linux内存管理(二)
    linux内核调试技巧之一 dump_stack【转】
    Linux内存描述之概述--Linux内存管理(一)
  • 原文地址:https://www.cnblogs.com/HiJackykun/p/11160986.html
Copyright © 2011-2022 走看看