【Java】SQL——数据库的使用超超超详细!!!

SQL
1、什么是SQL?
结构化查询语言,其实就是定义了操作所有的关系型数据库的准则
2、SQL语法:
单行多行书写,分号结尾;不区分大小写,但是关键字推荐大写;单行注释 -- hhhhh   或 #hhhh多行注释  /*hhh*/
3、SQL的分类:
DDL(data Definition lanuage) 数据库定义语言:定义数据库对象:数据库,表,列等;
关键字:create、drop、alter
DML(DAta Manipulation Language)数据操作语言:
对数据库中表的数据进行删改
关键字:insert、delete、update
DQL(Data Query Languaeg)数据查询语言:
查询数据库中表的记录(数据)
关键字:select、whereDCL(data control Language)
数据库控制语言:定义数据库的访问权限和安全级别,及创建用户
关键字:GRANT、RVEVOKE

DDL :操作数据库、表
1、操作数据库(CRUD):
Create创建:
create database 创建数据库名称
create database if not exists 创建数据库名称(判断该数据库是否被创建,如果创建了就返回flse)
create database 数据库名 character set gbk (设置这个数据库的语言时gbk)
Retrieve:查询
show databases(查询所有数据库的名称)
show create databases mysql(查询创建的mysql数据库)——查询某个数据库的创建语句
Update:修改
alter database 数据库名称 character set 字符集名称 (修改数据库的字符集)
Delete:删除
drop database 数据库名称 (删除该数据库)
create database if exists 数据库名称 (判断数据库是否存在)
使用数据库select database(查询当前正在使用的数据库名称)ues 数据库名称 (使用数据库)
2、操作表:CRUD
Create:创建
create table 表名(列名1 数据类型1,列名2 数据类型2…) (创建表)
creat table 表名 like 被复制的表名 (复制表)
数据类型:
bouble:小数类型 (5,2)五位,保留小数点后两位
date:日期 包含年月日时分秒 yyyy-mm-dd HH :mm:sstimestamp:时间类型 包含年月日时分秒(如果不给时分秒赋值,自动使用系统时间)
varchar:字符串类型 varchar (字符上限)
Retrieve:查询
show tables;(查询数据库中所有表的名称)
desc 表名(查询表结构)
Update:修改
alter table 表名 rename to 新的表名(修改表名)
alter table 表名 character set 字符集名称(修改表的字符集)
alter table 表名 add 列名 数据类型 (添加一列)
alter table 表名 change 列名 改后新列名 新数据类型;
alter table 表名 modify 列名 新数据类型 (修改列名称,类型)
alter table 表名 drop 列名 (删除列)
Delete:删除
drop table 表名 ;
drop table if exists 表名 ;

DML:增删表中的数据
1、添加数据
insert into 表名(列名1,列名2…)values(值1,值2…)
注意: 列名和值要一一对应;如果表名后没有定义列名,则默认给所有的列添加值 ;除了数字类型,其他类型都要拿引号(单双引皆可)引起来
2、删除数据
delete from 表名 [where 条件] (如果想要删除表中全部记录,不推荐用这条,因为表中有多少记录,他就会执行多少条删除操作)
TRUNCATE TABLE 表名 删除表中所有数据 (先删除表,然后再创建一张一模一样的表,推荐使用)
注意:如果没有写条件,就会把表中所有记录全部删除
3、修改数据
update 表名 set 列名1=值1,列名2=值2…[where 条件]
注意:如果不加任何条件,则会将表中所有数据都进行修改

DQL:数据查询语言查询表中记录:
select* from 表名查询命令:
1、排序查询:
语法:
order by 子句 order by 排序字段1 排序方式1,排序字段2 排序方式2。。(只有当第一条件一样的时候才会去执行第二条件)
排序方式:升序ASC 降序:DESC
2、聚合函数:
将以列数据作为一个整体,做一个纵向的计算(相当于平均分)
count:计算个数,一般选择非空的列:主键count(*)只要这一列的值不全为空,就记录
min:计算最小值
max:计算最大值
sum:计算和
avg:计算平均值
注:聚合函数的计算排除null值: 解决方式:选择不含空的列进行计算;IFNULL函数
3、分组查询:
语法:
group by条件限定的语法方式:
**where和having的区别:**where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之火进行限定,如果不满足结果,则不会被查询出来;;where后不可以跟聚合函数,having可以进行聚合函数的判断。
注:分组后查询的字段要不分组函数,要不聚合函数
4、分页查询:
语法:
limit 开始的索引,每页查询的条数

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值