java数据库编程之高级查询
第三章:高级查询(-)
3.1:修改表
3.1.1:修改表
语法:
Alter table <旧表名> rename [ TO] <新表名>;
例子:Alter table `demo01` rename `demo02`;
3.1.2:添加字段
语法:
Alter Table 表名 ADD 字段名 数据类型 [属性];
例子:Alter Table `Demo02` ADD `passWord` varchar(50) not null;
3.1.3:修改字段
语法:
Alter table 表名 change 原字段名 新字段名 数据类型 [属性];
%修改字段名%
Alter Table `Demo02` change `name` `username` char(10) NOT NULL;
3.1.4 删除字段
删除字段是将数据表中的某个字段从表中移除:
语法: ALTER TABLE 表名 DROP 字段名;
3.1.5 添加主外键
1.添加主键约束
语法: ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);
2.添加外键约束
语法: ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 关 联表名(关联字段);
3.2 DML语句回顾
3.2.1 插入数据记录
1.插入单行数据
语法: INSERT INTO 表名 [(字段名列表)] VALUES (值列表);
2.插入多行数据
语法:INSERT INTO 新表 (字段名列表) VALUES (值列表1), (值列表2), ......, (值列表n);
注意:在是INSERT语句插入记录时,如果不包含字段名称,VALUES后值列表中各字段的顺序必须和表定义中各字段的顺序相同,如果表结构变了(如执行了添加数据操作) 则值列表也要变化,否则会出现错误.如果指定了插入的字段名,就会避免这个问题,因此,建议在插入数据时指定具体字段名.
3.将查询结构插入到新表
语法1:
INSERT INTO 新表(字段1,字段2,......)
SELECT 字段1,字段2,......
FROM 原表;
语法2:
CREATE TABLE 新表 (SELECT 字段1,字段2, ........FROM 原表);
3.2.2 更新数据记录
语法: UPDATE 表名 SET 字段1=值1,字段2=值2,........字段n=值n [WHERE 条件];
3.2.3 删除数据记录
语法: DELETE FROM 表名 [WHERE条件];
语法: TRUNCATE TABLE 表名;
3.3 数据查询
3.3.1 DQL语句回顾
SQL Server中数据查询语句:
语法: SELECT<字段名列表>
FROM<表名或视图>
[WHERE <查询条件>]
[GROUP BY <分组的字段名>]
[HAVING <条件>]
[ORDER BY <排序的字段名> [ASC 或 DESC]];
3.3.2 LIMIT子句
语法: SELECT<字段名列表>
FROM<表名或视图>
[WHERE <查询条件>]
[GROUP BY <分组的字段名>]
[ORDER BY <排序的字段名> [ASC 或 DESC]]
[LIMIT [位置偏移量, ]行数];
其中:1.位置偏移量指从结果集中第几条数据开始显示(第一条记录的位置偏移量是0,第2条 是1,....),当省略时从第一条记录开始显示.
2.行数值显示记录的条数
3.3.3 常用函数
常用聚合函数:
|
AVG() |
返回某字段的平均值 |
|
COUNT() |
返回某字段的行数 |
|
MAX() |
返回某字段的最大值 |
|
MIN( ) |
返回某字段的最小值 |
|
SUM( ) |
返回某字段的和 |
|
函数名 |
作用 |
常用的字符串函数
|
函数名 |
作用 |
举例 |
|
CONCAT(str1,str2,...,strn) |
连接字符串str1,str2,...,strn为一个完整字符串 |
SELECT CONCAT(‘My’,’S’,’QL’); 返回:MySQL |
|
INSERT(str,pos,len,newstr) |
将字符串str从pos位置开始,len个字符长的子串替换为字符串newstr |
SELECT INSERT(‘这是SQL SERVER数据库’,3,10,’MySQL’); 返回:这是MySQL数据库 |
|
LOWER(str) |
将字符串str中所有字符变为小写 |
|
|
UPPER(str) |
将字符串str中所有字符串变为大写 |
SELECT UPPER(‘MySQL’); 返回: MYSQL |
|
SUBSTRING(str,num,len) |
返回字符串str的第num个位置开始长度为len的子字符串 |
3.时间日期函数
|
函数名 |
作用 |
举例 |
|
CURDATE() |
获取当前日期 |
SELECT CURDATE(); |
|
CURTIME() |
获取当前时间 |
|
|
NOW() |
获取当前日期和时间 |
|
|
WEEK(date) |
返回日期date为一年的第几周 |
|
|
YEAR(date) |
返回日期date的年份 |
|
|
HOUR(time) |
返回时间Time的小时值 |
|
|
MINUTE(time) |
返回时间Time的分钟值 |
|
|
DATEDIFF(date1,date2) |
返回日期参数date1和date2之间相隔的天数 |
|
|
ADDDATE(date,n) |
计算日期参数date加上n天后的日期 |
4.数字函数
|
函数名 |
作用 |
举例 |
|
CEIL(x) |
返回大于或等于数值x的最小整数 |
SELECT CEIL(2.3) 返回:3 |
|
FLOOR(x) |
返回小于或等于数值x的最大整数 |
|
|
RAND() |
返回0~1间的随机数 |
3.4 子查询
3.4.1 简单子查询
语法:SELECT ...FROM 表1 WHERE 字段1 比较运算符(子查询);
使用AS关键字,符合ANSI标准
SELECT 字段列表 FROM 表名 AS 表的别名;
使用空格,简便的方法
SELECT 字段列表 FROM 表名 表的别名;
3.5 IN和NOT IN 子查询
3.5.1 IN子查询
使用子查询 当返回结果有多条记录时,则把条件的 =改为 in
IN子查询后面可跟随返回多条记录的子查询,用于检测某字段的值是否存在于某个范围中.
3.5.2 NOT IN子查询
不在IN子查询范围内的其他数据.
java数据库编程之高级查询的更多相关文章
- java面向对象下:Java数据库编程
19.Java数据库编程: JDBC概述: JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...
- java数据库编程——读写LOB、可滚动和可更新的结果集、元数据
java 数据库编程 1. 读写LOB 除了数字.字符串和日期之外,许多数据库还可以存储大对象,例如图片或其它数据.在SQL中,二进制大对象称为BLOB,字符型大对象称为CLOB. 要读取LOB,需要 ...
- SQL编程之高级查询(子查询)以及注意事项
SQL编程之高级查询(子查询)以及注意事项 1.什么是子查询? 当一个查询是另一个查询的条件时,称之为子查询.子查询可以使用几个简单命令构造功能强大的复合命令.子查询最常用于SELECT-SQL命 ...
- Java数据库学习之模糊查询(like )
Java数据库学习之模糊查询(like ): 第一种方式:直接在SQL语句中进行拼接,此时需要注意的是parm在SQL语句中需要用单引号拼接起来,注意前后单引号之间不能空格 String sql = ...
- 菜鸡的Java笔记 java数据库编程(JDBC)
java数据库编程(JDBC) 介绍 JDBC 的基本功能 content (内容) 现在几乎所有的项目开发过程之中都不可能离开数据库,所以在java ...
- java数据库编程之嵌套子查询及exists的使用
第四章:高级查询(二) 4.1:exists和not exists子查询 4.1.1:exists子查询 用exists作为子查询的where条件 语法:select,,,,,,from 表名 w ...
- Java数据库编程、XML解析技术
数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...
- java 数据库编程 学习笔记 不断更新
最近开始学习java,感觉java的数据库编程需要发个随笔记录一下,话不多说 切入正题. 一.数据库访问技术的简介 应用程序 → 执行SQL语句 →数据库 → 检索数据结果 → 应用程序 ( ...
- JAVA数据库编程、JAVA XML解析技术
JDBC概述 JDBC是JAVA中提供的数据库编程API curd :数据库增删改 链接字符串:String url = "mysql :/localhost :3306/jdbc/&quo ...
随机推荐
- Swiper+JS 上拉刷新
JS // 上拉刷新 var page = 2; var isAjax = true;//加载数据前状态 $( ...
- Linux shell中的竖线(|)——…
原文地址:Linux shell中的竖线(|)--管道符号作者:潇潇 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | command ...
- FileInputStream 小Demo
要求:设计如下界面 文本框里面可以输入的路径和文件名 单机按钮可以读取在 指定的文件 并把文件内容显示到一个文本域里面来 代码: /** * */ package com.niit.homewo ...
- 【Beta】Daily Scrum Meeting——Day2
站立式会议照片 1.本次会议为第一次Meeting会议: 2.本次会议在中午12:00,在图书馆一楼楼道召开,本次会议为30分钟讨论今天要完成的任务以及接下来的任务安排. 燃尽图 每个人的工作分配 成 ...
- 201521123106 《Java程序设计》第6周学习总结
1. 本章学习总结 2. 书面作业 Q1. clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? 答:在同一个包里或者 ...
- 201521123088《java程序设计》第三周学习总结
1. 本周学习总结 本周学习了关于Java的封装,所谓封装就是将属性私有化,提供公有的方法访问私有属性 2. 书面作业 代码阅读 public class Test1 { private int i ...
- 201521123080《Java程序设计》第2周学习总结
1.本周学习总结 a.学习了如何建立远程仓库和本地仓库并建立连接. b.学习了一些基础语法. 2.书面作业 Q1.使用Eclipse关联jdk源代码,并查看String对象的源代码(截图)?分析Str ...
- 201521123028 《Java程序设计》第13周学习总结
本周学习总结 书面作业 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? Ans:cec.jmu.edu ...
- Struts第八篇【资源国际化、对比JSP的资源国际化】
资源国际化 我们在学JSTL标签的时候就涉及到了资源国际化,,,但是呢,在JSP的章节我并没有写博文来讲解怎么弄-.一方面感觉JSP的资源国际化好麻烦,另一方面是感觉用的地方很少-..因此就没有深入去 ...
- JVM锁机制之synchronized
概述: synchronized是java用于处理多线程同步的一个关键字,用于标记一个方法/代码块,使之成为同步方法/同步块. 用synchronized可以避免多线程处理时的竞态条件问题. 相关概念 ...