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; #关联查询 ```