数据库的基本查询语法:

一.数据库的基本数据类型:

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 数据库名称;

71ea64d3235241dfa73be864324a805d.png

三.查看所有的数据库:

格式:show create databases 数据库名;

e29086d6b54d4228aa1a07b2a3c092c2.png

四.删除数据库:

格式:drop database 数据库名;

a6b3f93119204331baee2b7cf7044680.png

五.修改数据库【了解】

格式:alter database 数据库名 character set 字符集;

cadf11792a0845dd9fdc91c822d33cb2.png

六.操作表

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;

8a1bc58c62b24aa7a9f8aa152326d317.png

七。DML操作表记录-增删改;

插入记录:

方法一:插入指定的列格式:insert into 表【字段1,字段2】values【值1,值2】

方法二:插入所有的列 格式:insert into 表名【值1,值2,值3】;

282c63ca4f934ad398ebb5c9f6e1f5c6.png

7.2修改记录

格式:update 表名 set  字段 = 改变的值,字段=改变的值 where 条件;

列如:修改id为1的人 年龄为20;

a82ee1c219094afe81ca81bb8f60842a.png

7.3删除记录

格式:delete from 表名 where条件;

b17b21eb69b3467cb66e3709674efa50.png

一.基本查询语法;

查询所有表的数据:格式:select * from 表名;

adeb59bc111c40f5a82c4870c5f33a4e.png

查询某张表特定列的数据;

格式:select 字段名1,字段名2 from 表名;

f8f7ca0767524a4ea57e03633117ed44.png

去重查询 

格式:select distinct 字段名 from 表名;

cf75a7155ccb4e7eaead6d9412f4091d.png注意distinct前面不能有字段名

别名查询

格式:select 字段名 as 别名, 字段名 as 别名 from 表名;

d82fe3f947dc48e194e8d767d58e14f3.png

条件查询

格式:select 【字段名1,字段名2】或者【*星号代表全选择】from 表名 where 条件;

6f84c60eff854c39bff504261550eaa2.png

like 模糊查询

格式:一般用_和%号一起使用;_占一位  %占0或者多位;

列如:查询数据中性小的人:

a6273ece248544bea52572ec3a778468.png

and多条件同时满足

b1f52713a30a4a9aa11e91441b776179.png

or多条件任意一个条件满足即可

ecf9744f3e354701bfc6aad275c3d08f.png

排序查询

1.降序查询:格式:select *from 表名 order by 字段名 desc;

8d38d34ce80d4babac7cc688257b69d2.png

聚合函数;

max(字段名):求这个数据里面的最大数

mia(字段名):求这个数据里面的最小数

avg(字段名):求这个数据里面的平均数

count(字段名):统计这个数据里面有多少数据

sum(字段名):对这一列的数据进行相加 求总和;

5f543d6117f143d6b64f5cc19bfbdacb.png

分组查询

格式:select 字段名1,,字段名2,from 表名 where 条件 group by 列名 having 【条件】

列如:根据性别分组统计每组的人数:

e1b307f06fe44beea1c892a01de374d5.png

列2:根据性别分组,最后筛选出人数大于5的组

423e9438c20a4a9eaadb7e28f49d000f.png

分页查询:

简述:LIMIT是限制的意思,所以LIMIT的作用就是现在查询吉利的条数,经常用了做分页查询

格式·:select*from 表名 limit m,n

m标识是从哪里开始查,n表示查几条,m的索引根java里面数组相同都是从零开始

列如:我要查1到4的数据:

e59f45fa0e054fecac619f81785d83f8.png

分页查询还有一个公式:m=(当前页面码-1)*n,n

解释:如果你的页面为第一页:那m=(1-1)*n , n;

           如果你的页面为第二页:那m=(2-1)*n , n;

           如果你的页面为第三页:那m=(3-1)*n , n;依次类推n就表示要看的行数一样

在详细一点就想游览器里面一样他的网页不是一下子就加载完的 它也是分一页一页的 他一页显示多少个数据也就相当于我们n这里设置的值;

八·.外键约束

单表的缺点如果表中出现多条数据需要改变的时候改变起来很麻烦;所以现在就有一个多表以及多表的查询方法:

首先我们建立两个表:

1592561e8b57475f87e76d8d75227bb5.png

外键约束:外键约束的作用:保证引用数据的完整性,用来维护表间关系

外键:一张从表中的某一个字段医用主表中的主键

主表:约束别人

副表/从表:使用别人的数据被别人约束;

添加外键的格式:constraint 外键约束名称(自定义)foreign key 外键字段名 references 主表名(主键字段名)

9f2efc295a484ae7a30e43203d1a209a.png

        这样子就不可以直接去修改我们表中的数据了,但作为一个合格的程序员这不让我修改忍得了啊,那我偏要修改;怎么办

接下来就是我们要说的级联

外键级联:就是把主键的这个表进行删除,然后从新去创建这个表,从新创建表的同时添加级联更新和级联删除

原来没新建的表:

9f2efc295a484ae7a30e43203d1a209a.png

        删除后新建的表:

27b5a86667c444f4932fd867646ba166.png

表与表之间的关系:

现实生活中,实体与实体之间肯定是有关系的,比如部门和员工,老师和学生等。

那么我们表与表之间也是有关系的:

一对多建表原则:在多的一方创建一个字段,字段作为外键指向一的一方的主键;

多对多的关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键;

一对一建表原则:一对一可以创建成一张表;(不常用)

九.内连接查询:

9.1隐式内连接:

格式:select 【字段1,字段2】或【*】from 表名A,表名B where 连接条件(表A的主键=表B的外键);

45d310407023488da5126cb04f0811dd.pngfc97dc78911240a09682b020af3c9bc0.png

9.2显示内连接:

格式:select 【字段1,字段2】或【*】from 表名A inner join 表名B on 连接条件 where 其他条件

45d310407023488da5126cb04f0811dd.png

d65060b34a484900b6bcd6417cb70b9a.png

外连接【重点】

我们发现上面几种连接只能连接上公用部分 但是对于没用共同属性的就不会显示出来

a5212e7bb5cb44afa8cfc8f94f84337c.png

6a8b0745e7d14a578cd8be29d2516931.png

弊端:我后面添加上去的数据他查不到那要怎么办呢,现在就要用到我们的外部链接了

左外连接:

格式:select 【字段】或者【*】from 表名A left outer join 表名B on 条件

7eae0c24cd05469c9388b0895ae4c148.png

这个是我从新建立的表单 可以看到就算商务部没有满足那个条件也可以显示出来,但是员工id和姓名都是为空的。

左外连接扩展:

6fb50b9bb7b24d328ea611637931aca8.png

接下来是右外连接:

格式:select 【字段】或者【*】from 表名A right outer join 表名B on 条件

77bd2f51f6574aa2b9fb8baeaa535fe3.png

可以看到右外连接显示了姓名白龙马但是没部门,因为数据匹配不上所以白龙马没有部门

这也解决了连接表图过程中没匹配上的数据不显示的问题;

十.子查询【重点】

介绍:一个查询里面包含两个select 

一个查询语句的结果是另一个查询语句的条件

有查询嵌套,内部的查询称为子查询

子查询要使用括号;

10.1.如图所示注释写在图片里:

374df8e983e843f9a6441aaefdb2ee24.png

4bce6502af0f4488b6b0199215299090.png

ddb031592c494f6a84f9866956498d26.png

3199aff419b446de817e42dbd06b67d9.png

多行多列:

c31d7c95bb2547bd8928ac9fcf3d4971.png

以上就是我们数据库的基本查询方法了 下班 下班。

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值