Java面向数据库编程——高级查询(一)

修改表

修改表名:

语法:

ALTER TABLE<旧表名> RENAME【TO】<新表名>;

其中,TO为可选参数,使用与否不影响结果。仅修改表名,表结构不变。

添加字段

语法:

ALTER  TABLE 表名 ADD 字段名 数据类型【属性】;

修改字段

语法:

ALTER TABLE  表名 CHANGE 原字段名 新字段名 数据类型【属性】;

删除字段

语法:

ALTER TABLE 表名 DROP 字段名;

添加主外键

添加主键约束

语法:

ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY  KEY 表名(主键字段);

添加外键约束

语法:

ALTER TABLE 表名 ADD CONSTRAINT 外键名 PRIMARY  KEY 表名(外键字段)REFERENCES;

DML语句回顾

插入数据记录

语法:

INSERT INTO 表名 [(字段名列表)] VALUES(值列表);

  • 表的字段名是可选的,如果省略,则依次插入所有字段。
  • 多个列表和多个值之间使用逗号分隔。
  • 值列表必须和字段名列数量相同,且数据类型相符。
  • 如果插入的是表中部分数据,字段名列表必须填写。

插入多行数据

语法:

INSERT INTO 表名 [(字段名列表)] VALUES(值列表1),(值列表2)......(值列表n);

将查询结果插入到新表

语法1:

INSERT INTO 新表 (字段1,字段2,......)

SELECT 字段1,字段2,......

FROM 原表;

语法2:

SELECT 字段1,字段2,......

INTO 新表;

FROM 原表;

CREATE TABLE 新表(SELECT 字段1,字段2,.......FROM 原表);

其中,

语法1:需要先按照所插入字段的类型,顺序,个数创建新表

语法2:随插入语句的执行而创建新表,无须先建表。(MySQL中不支持可用第二种方法)

更新数据记录

语法:

UPDATE 表名 SET 字段1 = 值1,字段2 = 值2 ,.......,字段n = 值n【WHERE 条件】;

删除数据记录

语法:

DELETE FROM 表名 【WHERE 条件】;

TRUNCATE TABLE 表名;(删除表中所有记录)

数据查询

DQL语句回顾

语法:

SELECT  <字段名列表>
FROM     <表名或视图>
[WHERE <查询条件>]
[GROUP BY <分组的字段名>]
[HAVING <条件>]
[ORDER BY<排序的字段名>[ASC或DESC]]

LIMIT子句

语法:

SELECT  <字段名列表>
FROM     <表名或视图>
[WHERE <查询条件>]
[GROUP BY <分组的字段名>]
[ORDER BY<排序的字段名>[ASC或DESC]]

[LIMIT [位置偏移量,] 行数]

其中

  1. 位置偏移量指从结果集中第几条数据开始显示(第一条记录位置为0),此参数可选,当省略是从一条记录开始显示。
  2. 行数指显示的记录条数。

常用函数

聚合函数(常用于GROUP BY从句的SELECT查询中)
AVG(col)返回指定列的平均值
COUNT(col)返回指定列中非NULL值的个数
MIN(col)返回指定列的最小值
MAX(col)返回指定列的最大值
SUM(col)返回指定列的所有值之和
GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果

字符串函数

时间日期函数

MySQL数学函数
函数    作用
abs(x)    求绝对值
PI()    返回圆周率
sqrt(x)    x的平方根
mod(x,y)    x除以y的余数
ceil()、ceiling()    返回大于或者等于x的最小整数
floor(x)    返回小于或者等于x的最小整数
rand() rand(x)    返回0~1的随机数,x相同时返回值相同
round(x) round(x,y)    返回整数,四舍五入。返回x保留到小数点后y位的值
truncate(x,y)    截断返回x保留到小数点后y位的值(不四舍五入)
sign(x)    返回x的符号,负数、0、正数分别返回-1、0、1
pow(x,y) power(x,y)    返回x的y次方
exp(x)    返回e的x次方
log(x)    返回x的自然对数
log10(x)    返回以10为底的对数
radians(x)    将角度转换为弧度
degrees()x0    将弧度转换为角度
sin(x)    正弦函数,返回正弦值,x是弧度
asin(x)    反正弦函数,返回反正弦值,x是弧度
cos(x)

余弦函数,返回余弦值,x是弧度
acos(x)    反余弦函数,返回反余弦值,x是弧度
tan(x)    正切函数,返回正切值,x是弧度
atan(x) atan2(x)    反正切函数,返回反正切值,x是弧度
cot(x)    余切函数,返回余切值,tan(x)的倒数

子查询

简单子查询

语法:

SELECT ....... FROM 表1 WHERE 字段1 比较运算符(子查询);

在SELECT语句中为表命名别名(alias)的方法

使用AS关键字,符合 ANSI标准。

SELECT 字段列表 FROM 表名 AS 表的别名;

使用空格,简便的方法

SELECT 字段列表 FROM 表名  表的别名;

表连接——合并多个数据表中的字段

子查询——将一个查询嵌套在另一个查询中。

IN 和NOT IN 子查询

使用IN关键字可以使用父查询匹配子查询返回的多个单子段值。

IN子查询后面可跟随返回多条记录的子查询,用于检测某字段的值是否存在于某个范围中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值