一.数据库的基本数据类型:
int 整数类型
double 小数类型
decimal 指定整数与小数长度的小数类型 范围在-99.99-99.99
date 日期类型 格式为:yyyy-MM-dd 包含年月日不包含分秒
datetime 日期类型 格式:YYYY-MM-DD HH:MM:SS,包含年月日包含时分秒
timestamp 日期类型 时戳
varchar 文本类型 为0-65535间的整数,变长
char 文本类型 为0-65535间的整数,定长
二.创建数据库
格式:create database 数据库名称;
三.查看所有的数据库:
格式:show create databases 数据库名;
四.删除数据库:
格式:drop database 数据库名;
五.修改数据库【了解】
格式:alter database 数据库名 character set 字符集;
六.操作表
6.1 创建表:
create table 表名(
字段名 数据类型[长度] [约束],
字段名 数据类型[长度] [约束],
字段名 数据类型[长度] [约束]
);//注意最后一个字段名后面不要加逗号;
6.2约束
not Null:非空约束;
列如:sum varchar(40) not null;表示这个列不能有null值
unique;唯一约束;
列如:sum varchar(40) unique ;这个列里面不可以有重复的数
primary key:主键约束(非空加唯一);
一般用在表的id列上面,一张表基本上都有id列的id作为唯一的标识;
auto_increment 自动增长,必须是设置了primary key 之后才可以使用auto_increment;
七。DML操作表记录-增删改;
插入记录:
方法一:插入指定的列格式:insert into 表【字段1,字段2】values【值1,值2】
方法二:插入所有的列 格式:insert into 表名【值1,值2,值3】;
7.2修改记录
格式:update 表名 set 字段 = 改变的值,字段=改变的值 where 条件;
列如:修改id为1的人 年龄为20;
7.3删除记录
格式:delete from 表名 where条件;
一.基本查询语法;
查询所有表的数据:格式:select * from 表名;
查询某张表特定列的数据;
格式:select 字段名1,字段名2 from 表名;
去重查询
格式:select distinct 字段名 from 表名;
注意distinct前面不能有字段名
别名查询
格式:select 字段名 as 别名, 字段名 as 别名 from 表名;
条件查询
格式:select 【字段名1,字段名2】或者【*星号代表全选择】from 表名 where 条件;
like 模糊查询
格式:一般用_和%号一起使用;_占一位 %占0或者多位;
列如:查询数据中性小的人:
and多条件同时满足
or多条件任意一个条件满足即可
排序查询
1.降序查询:格式:select *from 表名 order by 字段名 desc;
聚合函数;
max(字段名):求这个数据里面的最大数
mia(字段名):求这个数据里面的最小数
avg(字段名):求这个数据里面的平均数
count(字段名):统计这个数据里面有多少数据
速卖(字段名):对这一列的数据进行相加 求总和;
分组查询
格式:select 字段名1,,字段名2,from 表名 where 条件 group by 列名 having 【条件】
列如:根据性别分组统计每组的人数:
列2:根据性别分组,最后筛选出人数大于5的组
分页查询:
简述:LIMIT是限制的意思,所以LIMIT的作用就是现在查询吉利的条数,经常用了做分页查询
格式·:select*from 表名 limit m,n
m标识是从哪里开始查,n表示查几条,m的索引根java里面数组相同都是从零开始
列如:我要查1到4的数据:
分页查询还有一个公式:m=(当前页面码-1)*n,n
解释:如果你的页面为第一页:那m=(1-1)*n , n;
如果你的页面为第二页:那m=(2-1)*n , n;
如果你的页面为第三页:那m=(3-1)*n , n;依次类推n就表示要看的行数一样
在详细一点就想游览器里面一样他的网页不是一下子就加载完的 它也是分一页一页的 他一页显示多少个数据也就相当于我们n这里设置的值;
八·.外键约束
单表的缺点如果表中出现多条数据需要改变的时候改变起来很麻烦;所以现在就有一个多表以及多表的查询方法:
首先我们建立两个表:
外键约束:外键约束的作用:保证引用数据的完整性,用来维护表间关系
外键:一张从表中的某一个字段医用主表中的主键
主表:约束别人
副表/从表:使用别人的数据被别人约束;
添加外键的格式:constraint 外键约束名称(自定义)foreign key 外键字段名 references 主表名(主键字段名)
这样子就不可以直接去修改我们表中的数据了,但作为一个合格的程序员这不让我修改忍得了啊,那我偏要修改;怎么办
接下来就是我们要说的级联
外键级联:就是把主键的这个表进行删除,然后从新去创建这个表,从新创建表的同时添加级联更新和级联删除
原来没新建的表:
删除后新建的表:
表与表之间的关系:
现实生活中,实体与实体之间肯定是有关系的,比如部门和员工,老师和学生等。
那么我们表与表之间也是有关系的:
一对多建表原则:在多的一方创建一个字段,字段作为外键指向一的一方的主键;
多对多的关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键;
一对一建表原则:一对一可以创建成一张表;(不常用)
九.内连接查询:
9.1隐式内连接:
格式:select 【字段1,字段2】或【*】from 表名A,表名B where 连接条件(表A的主键=表B的外键);
9.2显示内连接:
格式:select 【字段1,字段2】或【*】from 表名A inner join 表名B on 连接条件 where 其他条件
外连接【重点】
我们发现上面几种连接只能连接上公用部分 但是对于没用共同属性的就不会显示出来
弊端:我后面添加上去的数据他查不到那要怎么办呢,现在就要用到我们的外部链接了
左外连接:
格式:select 【字段】或者【*】from 表名A left outer join 表名B on 条件
这个是我从新建立的表单 可以看到就算商务部没有满足那个条件也可以显示出来,但是员工id和姓名都是为空的。
左外连接扩展:
接下来是右外连接:
格式:select 【字段】或者【*】from 表名A right outer join 表名B on 条件
可以看到右外连接显示了姓名白龙马但是没部门,因为数据匹配不上所以白龙马没有部门
这也解决了连接表图过程中没匹配上的数据不显示的问题;
十.子查询【重点】
介绍:一个查询里面包含两个select
一个查询语句的结果是另一个查询语句的条件
有查询嵌套,内部的查询称为子查询
子查询要使用括号;
10.1.如图所示注释写在图片里:
多行多列:
以上就是我们数据库的基本查询方法了 下班 下班。
标签:数据库,外键,查询,语法,select,表名,格式,字段名 From: https://blog.csdn.net/2401_85217463/article/details/140399325