目录
4.1模糊查询 like 通配符 %:统配n个字符 _:统配一个字符
1.Mysql数据库(SQL结构化语言)------操作数据库中数据库中数据【增删改查】
2.DDL数据定义语言:(主要对数据库和表定义的操作)
create database 数据库名;//创建数据库
use 数据库名;//要操作的数据库
drop database 数据库名;//删除数据库
create table 表名(
列名 数据类型 约束,
.....
列名 数据类型 约束
);//创建表和表内的字段
2.1数据类型:
int ,bigint, varchar(长度)--可变,char(长度)--固定长度,decimal(长度,小数),text,date
2.2约束:
主键primary key,
唯一约束 unique,
非空约束not null,是空is not null,
默认约束default,检查约束(8.0.14以后)check,
外键约束constraint foreign key references
递增 必须为整型类型(在最前面): auto_increment
2.3添加外键:
第一种:创建表时添加外键
[constraint][外键名称] foreign key(外键字段名) references 主表(主表列名)
第二种:在创建完表之后添加外键(一对多):(外对主)
一的表名 自己拟定的 一里面的外键名 多的表名(字段名)
alter table 表名 add constraint 外键名称 foreign key(外键字段) references 主表(主表字段名);
2.4条件:
1. 关系运算符: >,>=,<,<=,=,!=
2. (not)in运算符:(不)包含
3. between and
4. 逻辑运算符: and(与) or(或)
3.DML数据标记性语言--------增删改
增加:
insert into 表名 values(值,值,值.....),(值,值,值.....)......;//为表中所有列添加数据(单/多条)
insert into 表名(列名,列名...) values(值,值....);//为指定列添加数据
删除:
delete from 表名; -- 删除表中所有的记录 [不建议使用]--删库跑路蹲大牢
delete from 表名 where 条件; -- 根据条件删除满足条件的记录
修改:
update 表名 set 修改的字(列名=值,列名=值.... ) where 条件;
4.DQL数据库查询语言--------查询数据表中的记录
select [distinct--去重] [列名 as 别名,列名 别名, 列名--起别名][*--全局]
from 表名
[where 条件]
[group by 分组列] [having 分组后的条件] //分组及分组后的条件
[order by 排序的列 [desc asc:默认]] //排序及排序方式
[limit 起始记录,每页的条数]//分页
4.1模糊查询 like 通配符 %:统配n个字符 _:统配一个字符
通常和concat搭配使用
4.2联表:
重点:找到两个表之间关联的字段,想要的数据在*处替换,添加即可
注:多个表连接,表>=2
内连接:select * from 表名1 [inner] join 表名2 on 联表条件;//并集,相同合一
左连接:select * from 表名1 left join 表名2 on 联表条件;//表1的全部(包括和表2公共的部分)
左连接:select * from 表名1 right join 表名2 on 联表条件;//表2的全部(包括和表1公共的部分)
自连:select * from 表名 [inner/left/right] join 表名 on 联表条件;//规则和上面相同
4.3查询嵌套:
把一个sql查询的结果作为另一个sql查询的条件值/临时表。
4.4内置函数:
5大聚合函数:一般和分组使用
sum():求和
count(): 求个数
avg():平均值
max():最大值
min():最小值
字符串函数:
concat(s1,...sn):拼接
lower(str):转小写
upper(str):转大写
lpad(str,n,pad):左填充---用pad对str的左边填充n个长度
rpad(str,n,pad):右填充---用pad对str的右边填充n个长度
trim(str):去空格
substring(str,start,len):返回从str从start到len的字符串
char_length(str):返回字符串的长度
日期的函数:
curdate():返回当前日期
curtime():返回当前时间
now():返回当前日期和时间
year(date):获取date的年份
month(date):获取date的月份
day(date):获取date的日期
date_add(date,interval e type):返回一个日期/时间值+时间间隔e后的时间值
datediff(date1,date2):返回date1和date2之间的天数
数学函数:
ceil(x):向上取整
floor(x):向下取整
mod(x,y):返回x/y的模
abs(x):求x的绝对值