Java数据库篇3——SQL
Java数据库篇3——SQL
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库 查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统
1、SQL分类
分类 | 说明 |
---|---|
数据定义语言 | 简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列 等 |
数据操作语言 | 简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新 |
数据查询语言 | 简称DQL(Data Query Language),用来查询数据库中表的记录 |
数据控制语言 | 简称DCL(Date Control Language),用来定义数据库的访问权限和安全级别, 及创建用户 |
2、Mysql数据类型
3、DDL(数据定义语言)
3.1、操作数据库
查询表
#查看所有表
Show tables;
#查看指定表的内容
Desc 表名;
#查看表的创建语句(字符集)
Show create table 表名;
创建表
Create table 表名(列名1 数据类型1,列名2 数据类型2,列名3 数据类型3
);
复制表1
Create table 表名2 like 表名1;
修改表
#修改表名
Alter table 原表名 rename to 新表名;
#修改表的字符集
Alter table 表名 character set 字符集;
#在表内添加一行
Alter table 表名 add 列名 数据类型;
#修改列名
Alter table 表名 change 原列名 新列名 数据类型(可修改);
#修改列的数据类型
Alter table 表名 modify 列名 新数据类型;
#删除列
Alter table 表名 drop 列名;
删除表
Drop table 表名;
#存在此表才删除
Drop table if exists 表名;
3.2、DDL操作表
查询表
#查看所有表
Show tables;
#查看指定表的内容
Desc 表名;
#查看表的创建语句(字符集)
Show create table 表名;
创建表
创建表
Create table 表名(列名1 数据类型1,列名2 数据类型2,列名3 数据类型3
);
复制表1
Create table 表名2 like 表名1;
修改表
#修改表名
Alter table 原表名 rename to 新表名;
#修改表的字符集
Alter table 表名 character set 字符集;
#在表内添加一行
Alter table 表名 add 列名 数据类型;
#修改列名
Alter table 表名 change 原列名 新列名 数据类型(可修改);
#修改列的数据类型
Alter table 表名 modify 列名 新数据类型;
#删除列
Alter table 表名 drop 列名;
删除表
Drop table 表名;
#存在此表才删除
Drop table if exists 表名;
4、DML(数据操作语言)
4.1、添加数据
#添加单个数据
Insert into 表名 (列1,列2……列n) values (值1,值2……值n);
#添加多个数据
Insert into 表名 (列1,列2……列n) values (值1,值2……值n),
(值1,值2……值n),
(值1,值2……值n);
- 添加表中所有列数据的时候,可以省略列这个括号
- 列和值要一一对应
- Null可以作为占位符使用
- 值除了数字类型和null,其他类型都要用引号引起来
4.2、修改数据
Update表名 set 列=值,列=值 where 条件语句;
- 值除了数字类型和null,其他类型都要用引号引起来
- 不加条件就修改所有的记录
4.3、删除数据
Delete from 表名 where 条件语句;
不加条件删除所有的记录
truncate table 表名;删除表,创建一个一摸一样的空表
5、DQL(数据查询语言)
5.1、语法
select字段列表
from表名列表
where条件列表
group by分组字段
having分组之后的条件
order by排序
limit分页限定
5.2、基础查询
#多字段查询
Select 列名1,列名2 from 表名;
#去重查询
Select distinct 列名1,列名2 from 表名;(只有结果集完全相同才会被去重)
#计算列的查询
Select 列名1,列名2,列名1+列名2 from 表名;(一般都是数值相加,null+任何数都是为null)
#Ifnull函数
Select 列名1,列名2,ifnull(列名1,0)+ ifnull(列名2,0) from 表名;
#查询所有列
Select * from 表名;
5.3、条件查询
>
<
=
<>不等于
!=不等于
And等同于&&
Or等同于||
Between,,,and,,,包含边界,not不包含
In(值1,值2,,,值n)集合
Null不能用=判断要用is和is not
As起别名,数据库,表,都可以起别名,且as可以省略
select 列名 from 表名 where 条件表达式
5.4、模糊查询
- _占位符,单个任意字符
- %占位符,任意多个任意字符
SELECT * FROM address WHERE home LIKE ‘_澈’;
5.5、排序查询
- 升序ASC
- 降序DESC
Select 列1,列2 from 表名 order by 列1 排序方式1,列2,排序方式2;
5.6、聚合函数
5.6.1、count函数
#count(*):返回表中满足where条件的行的数量
select count(*) from student;
#count(列):返回列值非空的行的数量
select count(score) from student;
#count(distinct 列):返回列值非空的、并且列值不重复的行的数量
select count(distinct score) from student;
5.6.2、max和min函数
统计列中的最大最小值
select max(score) from student;
select min(score) from student;
如果统计的列中只有NULL值,那么MAX和MIN就返回NULL
5.6.3、sum和avg函数
求和与求平均
select sum(score) from student;
select avg(score) from student;
select avg(ifnull(score,0)) from student;
表中列值为null的行不参与计算,要想列值为NULL的行也参与组函数的计算,必须使用IFNULL函数对NULL值做转换
5.7、分组查询
分组查询的一定是分组字段或者聚合函数,否则将没有意义
Select 列1,列2 from 表名 group by 列名;
Select 列1,列2,列名 from 表名 group by 列名 having 条件语句;
Where分组前限定,having在分组后限定,where不可以判断聚合函数,having可以
5.8、分页查询
#Limit 开始索引 每页的条数;
Select * from 表名 limit 开始索引(每页条数*当前页码减一) 每页条数;
6、DCL(数据控制语言)
用来管理用户和管理权限
用户的信息都放在mysql数据库下的user表中
6.1、管理用户
- localhost
- %
#添加用户
Create user '用户名'@'主机名' identified by '密码';
#修改用户
Alter user '用户名'@'主机名’ identified by '密码';
#删除用户
Drop user '用户名'@'主机名';
6.2、权限管理
#查询权限
Show grants for '用户名'@'主机名';
#添加权限
Grant 权限列表 on 数据库.表名 to '用户名'@'主机名';
#删除权限
Revoke 权限列表 on 数据库.表名 from '用户名'@'主机名';
均可使用通配符,权限的通配符用all不是*
Java数据库篇3——SQL相关推荐
- Java数据库篇9——备份与还原、忘记密码
Java数据库篇9--备份与还原.忘记密码 1.备份 备份的应用场景 在服务器进行数据传输.数据存储和数据交换,就有可能产生数据故障.比如发生 意外停机或存储介质损坏. 这时,如果没有采取数据备份和数 ...
- Java数据库篇8——索引、视图、存储过程、触发器
Java数据库篇8--索引.视图.存储过程.触发器 1.索引 1.1.索引是什么 在数据库表中,对字段建立索引可以大大提高查询速度.通过善用这些索引,可以令MySQL的查询和 运行更加高效 如果合理的 ...
- Java数据库篇5——事务
Java数据库篇5--事务 1.什么是事务 事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要有 一条SQL出现异常,整个操作就会回滚,整个业务执行失 ...
- Java数据库篇1——数据库配置
Java数据库篇1--数据库配置 1.数据库 数据库(DataBase) 就是存储和管理数据的仓库 本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上 2.数据库的优点 存储方式 优点 缺点 ...
- java数据库编程——执行SQL 语句
[0]README 1) 本文文字描述+source code 均转自 core java volume 2 , 旨在理解 java数据库编程--执行SQL 语句 的基础知识 : 2)for sour ...
- Java数据库篇7——数据库设计
Java数据库篇7--数据库设计 1.第一范式 列不可再分 每一列属性都是不可再分的属性值,确保每一列的原子性 两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据 2.第二范式 属性 ...
- Java数据库篇6——多表查询
Java数据库篇6--多表查询 1.笛卡尔积 交叉连接查询 设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), ...
- Java数据库篇4——表的约束
Java数据库篇4--表的约束 1.非空约束 字段不允许为空 #创建表的时候添加 Create table 表名(列1 数据类型 not null,列2 数据类型,列3 数据类型 ); #创建表以后添 ...
- Java数据库篇2——数据库基本操作
Java数据库篇2--数据库基本操作 1.启动.停止.服务 net start mysql net stop mysql 2.登入登出 本地 Mysql -u用户名 -p密码Mysql -u用户名 - ...
最新文章
- 情感识别难?图神经网络创新方法大幅提高性能
- 《架构师(“拥抱2015”特刊)》发布
- 免费下载|《云原生时代下的App开发》走进阿里云一站式应用研发平台EMAS
- java校验文件格式_Java 判断文件是否为文本格式,并获取文件编码格式,读取内容!...
- AI+游戏:高效利用样本的强化学习 | 腾讯AI Lab学术论坛演讲
- win8.1重装系统计算机管理打不开,Windows8计算机打不开192.168.0.1怎么办
- centos7 挂载磁盘_Linux磁盘管理之LVM
- php ajax mysql视频教学视频_PHP入门教程之AJAX 与 MySQL
- 搜索留痕技术工具-免费搜索留痕外链工具发布
- unity3d摄像机的透视有些夸张怎么办?
- 控制中的各种函数MATLAB仿真
- linkboy+ESP32创意DIY时钟
- 【上海房价预测】代码实现——利用BP神经网络进行上海二手房价预测
- 【Mac环境】mac在线安装brew时返回443链接被拒绝或超时错误解决方案
- Ajax与JavaWeb分页
- redis实现坐标附近查询
- 使用PHPstudy在Windows服务器下部署PHP系统
- android模拟器发送短信
- Android 语音播报之项目实战
- 总结一下自己常用的软件和网站
热门文章
- [转载] Python3十大经典错误及解决办法
- 数组重复次数最多的元素递归_使用递归计算链接列表中元素的出现次数
- MS的完整形式是什么?
- ctype函数_PHP ctype_xdigit()函数与示例
- Java GregorianCalendar hashCode()方法与示例
- 2019聊大考研计算机调剂,2019年聊城大学硕士研究生预调剂工作说明
- mysql的安装和基本命令_MySQL安装以及简单命令用法
- ubutun 更换网络源_Ubuntu 更换源
- kailinux mysql提权_linux下mysql提权
- python编码示例_python urllib中的编码处理示例