数据库的使用场景
数据库是对大量的数据库进行存储和管理
show databases:查询所以的数据库
create database:创建数据库
create table 创建表
奇数符集:koi8
drop table:删除表
not exists:不存在
use :使用
varchar:相等于java中的String
table:建表用的
join:加入
建表之前一定是指定库
char(定长):没写满的话会补上0;
varchar(变长):就算没写满也不会补0
use:指定库
一个汉字占2个位置
show tables:查看表
插入数据
insert into xx values()()()().....;
插入期中的某些列
insert into xx(要改的数据)calues(原数据)
修改
update 表名 set 要修改的数据 //修改整列的数据
update 表名 set 要修改的数据 where 要修改那横的数据
或者是 or;和Java中的||一个意思
where的目的是帅选
set是修改
删除表中的数据
delete from 表名 where xx;
查询数据
select 列名,绝对列;全部查询写“*”
from 表名
where 行名,决定行
from 表名后面没有where说明我要查询的是所以行
distinct:去重的
起别名
列名 as 名称
以上的查询都是基本查询
条件查询
where作用,就是帅选
between和“某某之间”是一样样的
in范围:和“或者”一样样的
查询是空的
is:是
is not:不是
模糊查询
select字段名
where 列名 like '%要找的关键字%' :百分号在前面,关键字在后面;百分号在后面,关键字子前面;关键字在中间,百分号要在左右
名称必须是以关键字开头但是关键字后面只能有一个字
where 列名 like '关键字_' :一个下划线代表一个字符
排序
asc:升序 从小到大
desc:降序 从大到小
select
from
order by xx asc/desc(升序或者降序)
select
from
where
order by
聚合函数
总和
sum:求和(必须是数值类型)
select sum(求和的列) as 总名
平均分
avg:平均分(必须是数值类型)
select round(avg(xx),保留小数的位数);保留小数
求最大值
max:最大值(所以列都可以)
求最小值
min:最小值(所以列都可以)
求个数
count(输出的是行数的意思)(不数null)
查询数据
分组
select
from group by
分组可以和集合函数一起用
having:对分组结果进一步的帅选
复杂查询-limt
limit语句作用
limit是限制的意思,limit的作用就是
pageNo:页码
pageSize:每页显示条数
显示第几页数
limit (pageNo-1)*pageSize,pageSize;
约束
主见约束
主键的作用
用来区分表中的数据
主键的特点
1.主键必须是唯一不重复的值
2.主键不能包含null值
不用考虑主键会重复
auto_increment ----自增 只有数字会自增,字符串不行,和i++一样
truncate table 表名:删除表中所以数据
delete from 表名:删除表中所以数据,但是自增不会重新编号
唯一约束
作用
让字段的值唯一,不能重复
create table表名(
字段名 字段类型 unique
字段名 字段类型
)
非空约束的作用
让字段的值不能为null
create table 表名(
字段名 字段类型not null
)
默认约束
create table 表名(
字段名 字段类型 deeault
)
外键约束
数据给别人用的就是主表
用别人数据的叫从表,外键在从表中
表和表的关系:
一对一,一对多,多对多
外连接(左外链接
查询所以的部门信息以及员工信息
如果该部门有员工就显示
from:会显示在左边,他的数据会全部显示
left:左
outer:外
join:连接
右外链接
right join xx , xx显示在右边,右表(主表),他的数据会全部显示
内连接是两个表里有一样的值,条件后面可以继续加and,别的条件也行,外连接也是
外连接 ,分为左右连接,左连接是主表在from上,left 是条件
右连接是主表在right上,后面写条件
and:并且
or:或者
in:如果等于不止一个值,用in
子查询
在where里分两次查询,先走括号(和子类一个意思)里的查询,查到大概的数值,再做外面的代码(父类),精确的查询出该数据
子查询只能是一列,可以是多行