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(列名10+ ifnull(列名20from 表名;
#查询所有列
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
Select1,列2 from 表名 order by1 排序方式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、分组查询

分组查询的一定是分组字段或者聚合函数,否则将没有意义

Select1,列2 from 表名 group by 列名;
Select1,列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不是*

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言分配飞机10个座位,leetcode1227(飞机座位分配)--C语言实现

对于第一个乘客来说 他有三种选择坐在正确的(自己的位置), 那么后面的乘客都不会乱&#xff0c;所以第n个乘客可以坐到自己的位置, 1/n * 1.坐在第n个乘客的位置&#xff0c;那么第n个乘客肯定无法坐到自己的位置, 1/n * 0.坐在[1,n-1]之间的某个位置K.对于第K个乘客而言&#…

Java数据库篇4——表的约束

Java数据库篇4——表的约束 1、非空约束 字段不允许为空 #创建表的时候添加 Create table 表名(列1 数据类型 not null&#xff0c;列2 数据类型&#xff0c;列3 数据类型 ); #创建表以后添加 Alter table 表名 modify 列名 数据类型 not null&#xff1b; #删除 Alter tabl…

c语言数组转置原理,为什么这个数组转置不对?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼原数组是1,2,34,5,67,8,9转置后的数组是1,4,72,5,83,6,9但结果出来的是乱七八糟的数字&#xff0c;而且最后提示出错#includevoid TransposedArray(int Arr[3][3]){shortint i,j;shortint Med;for(i0;i<2;i){for(j0;j<2;j){i…

Java数据库篇5——事务

Java数据库篇5——事务 1、什么是事务 事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要有 一条SQL出现异常,整个操作就会回滚,整个业务执行失败 2、事物的特征 原子性&#xff1a;事务是不可再分的最小的操作单位一致性&#x…

c语言里寄存器.1说明意思,C语言复习+寄存器地址名称映射

C语言复习寄存器地址名称映射一.参考资料探索者STM32F4开发板&#xff1a;**《STM32F4开发指南-库函数版本》4.1小节C语言基础知识复习4.6小节 MDK中寄存器地址名称映射**STM32F4xx官方资料&#xff1a;《STM32F4xx中文参考手册》-第7章通用IO二.C语言复习位操作GPIOA->ODR|…

Java数据库篇6——多表查询

Java数据库篇6——多表查询 1、笛卡尔积 交叉连接查询 设集合A{a, b}&#xff0c;集合B{0, 1, 2}&#xff0c;则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)} 2、 内连接查询 2.1、隐式内连接 SELECT 字段名 FROM 左表, 右表 WHERE 连接条件;多…

c语言编程经典实例利润,C语言经典编程实例100题解答

C语言经典编程实例100题 答案答案 C语言经典编程实例100题C语言程序实例100个(一) 【程序1】 题目:有1、2、3、4个数字&#xff0c;能组成多少个互不相同且无重复数字的三位数,都是多少, 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足…

Java数据库篇7——数据库设计

Java数据库篇7——数据库设计 1、第一范式 列不可再分 每一列属性都是不可再分的属性值&#xff0c;确保每一列的原子性两列的属性相近或相似或一样&#xff0c;尽量合并属性一样的列&#xff0c;确保不产生冗余数据 2、第二范式 属性完全依赖于主键或者说一个表只描述一件…

android 播放声音资源,android播放音效例子 (翻页音效、警报音效通用 只需传入声音源)...

音效播放&#xff1a;资源文件&#xff1a; res/raw/filename声音池类&#xff1a;SoundPool sp newSoundPool(同时最大播放个数&#xff0c;AudioManager.STREAM_MUSIC,0);将加载里音频文件的SoundPool添加到一个HashMap中&#xff0c;提供给以后的调用HashMap spMap newHas…

Java数据库篇8——索引、视图、存储过程、触发器

Java数据库篇8——索引、视图、存储过程、触发器 1、索引 1.1、索引是什么 在数据库表中&#xff0c;对字段建立索引可以大大提高查询速度。通过善用这些索引&#xff0c;可以令MySQL的查询和 运行更加高效 如果合理的设计且使用索引的MySQL是一辆兰博基尼的话&#xff0c;…

android--多线程,android多线程

线程的基本用法&#xff1a;android多线程编程其实并不比java多线程特殊&#xff0c;基本都是使用相同的语法&#xff0c;比如说&#xff0c;定义一个线程只需要新建一个类继承自Thread&#xff0c;然后重写父类的run()方法&#xff0c;并在里面编写耗时的逻辑即可&#xff0c;…

Java数据库篇9——备份与还原、忘记密码

Java数据库篇9——备份与还原、忘记密码 1、备份 备份的应用场景 在服务器进行数据传输、数据存储和数据交换&#xff0c;就有可能产生数据故障。比如发生 意外停机或存储介质损坏。 这时&#xff0c;如果没有采取数据备份和数据恢复手段与措施&#xff0c;就会导致数据的丢 …

android的ui怎么做到流畅,android提高UI的流畅度

android提高UI的流畅度Android中所有的界面绘制工作都是在UI线程中进行的&#xff0c;提高UI流畅度的最核心根本在于释放UI线程。即:不在主线程中做耗时的操作。很多人都知道&#xff0c;耗时的操作要放到子线程中去做&#xff0c;比如访问网络&#xff0c;比如读写sd卡。像这类…

android uboot log,RK3288 Android 8.1系统uboot logo过渡到kernel logo会花一下

在调试RK3288 Android 8.1系统遇到一个问题&#xff1a;开机启动uboot logo过渡到kernel log的过程中会花掉直到没有显示&#xff0c;再出现kernel logo。分析&#xff1a;打印串口log时发现&#xff0c;uboot阶段显示一切正常&#xff0c;进入kernel以后就开始花掉了然后变成没…

Java JDBC篇1——初识JDBC

Java JDBC篇1——初识JDBC Java DataBase Connectivity Java 数据库连接&#xff08;Java语言操作数据库&#xff09; 1、什么是JDBC 其实是官方定义的一套操作所有关系型数据库的规则&#xff08;接口&#xff09;&#xff0c;各个数据库厂商去实现这套接口&#xff0c;提供…

android socket 框架c#,C#与Android Socket通信

【实例简介】C#做服务器&#xff0c;Android做客户端&#xff0c;实现Socket通信【实例截图】【核心代码】C与Android-Socket通信-yu└── C#与Android-Socket通信├── MySocketServer│ ├── MySocketServer│ │ ├── bin│ │ │ └── Debug│ │ …

Java JDBC篇2——JDBC增删查改

Java JDBC篇2——JDBC增删查改 urljdbc:mysql://localhost:3306/test userroot passwordblingbling123. drivercom.mysql.jdbc.Driverpublic class JDBCtool {private static String urls;private static String user;private static String password;private static String d…

android商品数量加减,微信小程序实现一个简单的商品数量加减案例

简介这是一个用微信小程序原生代码实现的数量加减demo&#xff0c;主要是用于商品购物车或者商品详情修改数量使用&#xff0c;很简单哦~~~。核心js方法说明addCount(增加数量)delCount (减少数量)getCount(获取数量)实现效果如下图所示&#xff1a;微信小程序实现一个简单的商…

Java JDBC篇3——JDBC事务

Java JDBC篇3——JDBC事务 1、事务方法 方法声明功能介绍void setAutoCommit(boolean autoCommit)参数是 true 或 false 如果设置为 false&#xff0c;表示关闭自动提交&#xff0c;相当于开启事务void commit()提交事务void rollback()回滚事务 2、步骤 获取连接开启事务获…

signature=1610c03482e0c6557f7ec99f0ceeae85,Vpdes Permit No. Va006557

摘要&#xff1a;PARK 500 4100. BERMUDA HUNDRED ROAD, CHESTER, VIRGINIA 23831 TELEPHONE (804) 751-2000 March 3, 1992 Mr. A. C. Ray Virginia Water Control Board Piedmont Regional Office P. 0. Box 11143 Richmond, Virginia 23230 Subject: VPDES Permit No. VA00…