JAVA零基础学习——DML语句

文章详细介绍了MySQL中的DDL(DataDefinitionLanguage)操作,包括如何查询表、创建表、删除表和修改表结构。讨论了各种数据类型,如数值、日期和字符串,并提供了一个创建学生表的案例。此外,还涵盖了DML操作,如添加、修改和删除数据,以及DQL查询,包括基础查询、条件查询、排序、分组和分页查询。
摘要由CSDN通过智能技术生成
DDL -- 操作表
查询表:

SHOW TABLES;

查询表结构:

DESC 表名称;

创建表:

CREATE TABLE 表名(

creat table user( 字段名 数据类型,

id int, ... ...

username vachar(20), 字段名 数据类型

password vachar(32) #最后一行不要"," );

数据类型

MySQL支持多种类型,分为:数值、日期、字符串

分类 数据类型 大小 描述

TINYINT 1 byte 小整数值

数 SMALLINT 2 bytes 大整数值 值 MEDIUMINT· 3 bytes 大整数值 类 INT或INTEGER 4 bytes 大整数值 型 BIGINT 8 bytes 极大整数值 FLOAT 4 bytes 单精度浮点数值 DOUBLE 8 bytes 双精度浮点数值 DECIMAL 小数值

日 期 DATE 3 日期值 和 TIME 3 时间值或持续时间 时 YEAR 1 年份值 间 DATETIME 8 混合日期和时间值 类 TIMESTAMP 4 混合日期和时间值,时间戳 型

 CHAR        0-255 bytes     定长字符串(字符长度设置多少储存多少 存储性能高 浪费空间)
 VARCHAR 0-65535 bytes       变长宇符串(字符长度用多少设置多少 存储性能低 节约空间)

字 TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串 符 TINYTEXT 0-255 bytes 短文本宇符串 串 BLOB 0-65 535 bytes 二进制形式的长文本数据 类 TEXT 0-65 535 bytes 长文本数据 型 MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据 MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据 LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据 LONGTEXT 0-4 294 967 295 bytes 极大文本数据

/*案例:需求设计一张学生表,请注重数据类型,长度的合理性 编号、姓名长度不超过10个汉字、性别一个汉字、生日取年月日、入学成绩小数点保留两位、邮件地址不超过64、 联系电话可能出现非数字、学生状态(用还是数字表示,正常、休学、毕业) create table student ( id int, name varchar(10), gender char(1), birthday date(3), grades double(5,2), email varchar(64), phoneNumber varchar(15), style TINYINT(1) )

删除表

DROP TABLE 表名; DROP TABLE IF EXISTS 表名; #删除表时判断表是否存在

修改表

修改表名: ALTER TABLE 表名 TENAME TO 新的表名; 添加一列: ALTER TABLE 表名 ADD 列名 数据类型; 修改数据类型: ALTER TABLE 表名 MODIFY 列名 新的数据类型; 修改列名和数据类型: ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

删除列

ALTER TABLE 表名 DROP 列名;

DML
添加数据(以上面student表为基础)

给指定的列添加数据: ​ INSERT INTO 表名(列名1,列名2,...)VALUES(值1,值2,...); ​ 如:INSERT INTO student (id,name) VALUES(1,'张三'); ​ 给全部列添加数据: ​ INSERT INTO 表名 VALUES(值1,值2,...); ​ 如:INSERT INTO student(id,name,gender,birthday,grades,email,phoneNumber,style) ​ VALUES(1,'张三', '男', '1999-11-11', 88.88, '2323@232', '138888888', 1); ​ 简单方法:INSERT INTO student VALUES(1,'张三', '男', '1999-11-11', 88.88, '2323@232', '138888888', 1);

批量添加数据:

INSERT INTO 表名 (列名1,列名2,...)VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...)...; ​ INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...)...;

修改数据

修改表中数据: UPDATE 表名 SET 列名1=值1, 列名2=值2,... [WHERE 条件]; ​ 如将张三的性别为女,生日改成1999-12-12: UPDATE student set SET = '女',birthday = '1999-12-12' where name = '张三'; ​ 注意:修改语句中如果不添加条件,则将所有数据修改

删除数据

DELETE FROM 表名 [WHERE 条件]; ​ 如:delete from studunt where name = '张三'; ​ 注意:删除语句中如果不添加条件,则将所有数据修改

DQL
查询语法

SELECT 1.基础查询 ​ 字段列表 ​ FROM 2.条件查询(WHERE) ​ 表名列表 ​ GROUP BY 3.分组查询(GROUP BY) ​ 分组字段 ​ HAVING ​ 分组后条件 ​ ORDER BY ​ 排列字段 4.排列查询(GROUP BY) ​ LIMIT ​ 分页限定 5.分页查询(LIMIT)

1.基础查询

查询多个字段:

SELECT 字段列表 FROM 表名; ​ SELECT * FROM 表名; #查询所有数据 去除重复记录:

SELECT DISTINCT 字段列表 FROM 表名; 起别名:AS: AS 也可省略

2.条件查询

条件查询语法:SELECT 字段列表 FROM 表名 WHERE 条件列表; ​ 条件: 符号 功能

           >             大于
           <             小于
           >=            大于等于
           <=            小于等于
           =             等于
           <> ro !=      不等于
           BETWEEN...AND...  在某个范围之内(都包含)
           IN(...)       多选一

LIKE占位符 模糊查询 _单个任意宇符 %多个任意宇符 IS NULL 是NULL IS NOT NULL 不是NULL AND ro && 并且 OR or || 或者 NOT or ! 非,不是

3.排序查询

排序查询语法:

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1[排序方式1],排序字段名2[排序方式2]...;

排序方式:

ASC:升序排列(默认值)

DESC:降序排列

注意:如果有多个排序条件,当前的条件值一样时,才会根据第二条件进行排序

4.分组查询

分组查询语法:

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP 分组字段名 [HAVING 分组后条件过滤];

注意: 分组之后,查询的字段为聚合函数和分组字段,查询其它字段无任何意义

where和having区别

1.执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而baving是分组之后对结果进行过滤

2.可判断的条件不一样:where不能对聚合函数进行判断,having可以

执行顺序:where>聚合函数>having

聚合函数:

1.概念:将一列数据作为一个整体,进行纵向计算

2.聚合函数分类:

函数名(列名) 功能

count 统计数量

max 最大值

min 最小值

sum 求和

avg 平均值

3.聚合函数语法:

SELECT 聚合函数名(列名) FROM 表;

注意:null值不参与所有的聚合函数运算

5.分页查询

分页查询语法:

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;

(起始索引:从0开始)

计算公式:起始索引=(当前页码-1) * 每页显示的条数

tips:

1.分页查询limit是MySQL数据库的方言

2.Oracle分页查询使用rownumber

3.SQL Server分页查询使用top

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值