MySQL(二)、数据库数据类型

聚合函数 count sum avg max min 如果查的字段名下的数据为null,则不参与计算

select count(*) from student 计算一共多少行

select count(id) from student 计算一共有多少个id

select sum(age) from student 所有学生的年龄的和

select avg(ifnull(score,0)) from student 求所有学生的平均成绩,如果成绩为null就赋值0

多个查询窗口,进行查询操作
按条件查询公司成员(employee),姓名(name)、学历(edu)、部门(dept)、职位(work)
接口的抽象方法如下:
public List<Employee> queryEmployee(String name, String edu, String dept, String work);
实现类中的sql语句书写如下:
   String sql = "select e.*,post.id as pid,branch.id as bid,post.post_name,branch.branch_name "
    + "from employee as e inner "
    + "join post on post.id=e.post_id "
    + "inner join branch on branch.id=e.branch_id "
    + "where 1=1 ";
   if(name!=null&&!"".equals(name)) {
    sql += "and e.employee_name like '%"+name+"%'";
   }
   if(edu!=null&&!"".equals(edu)) {
    sql += "and e.edu='"+edu+"'";
   }
   if(dept!=null&&!"".equals(dept)) {
    sql += "and dept.dept_name='"+dept+"'";
   }
   if(work!=null&&!"".equals(work)) {
    sql += "and work.work_name='"+work+"'";
   }

逻辑运算符
ALL    和子查询的结果逐一比较,必须全部满足时表达式的值才为真
AND    允许where子句中存在多个条件,并且多个条件一起满足要求。
ANY    和子查询的结果逐一比较,其中一条记录满足条件则表达式的值就为真。
BETWEEN    表示一个范围搜索,大于等于下限,并且小于等于上限。
EXISTS    判断子查询是否存在数据,如果存在则表达式为真,反之为假
IN    允许在 where 子句中规定多个值
LIKE    用于比较相似的值,利用通配符来实现模糊查询。
NOT    与运算符含义相反
OR    允许where子句中存在多个条件,只要满足其中任意个一个条件即可。
IS NULL     Is NULL操作符用来比较NULL的值。


delete语句删除
不加where条件的delete语句就能删除所有数据
delete from  student

truncate语句删除
truncate  table  student

delete 语句与 truncate 语句的区别:
delete会记录日志,意味着删除后的数据还可以恢复,但是效率低。
truncate不会记录日志,删除后的数据不能恢复, 但是效率高。
truncate不能用于有外键约束引用的表。
delete 删除所有数据时,自动增长的值不会恢复到默认值开始,自动增长会按原值继续增长。
truncate 删除数据时,自动增长的值会恢复到默认值开始。

MYSQL数据类型


数据类型是数据的一种分类,是按照数据结构来分类的。
数据类型的出现是为了把数据分成所需内存大小不同的数据来进行存储。
数据类型分为了五种
整数、浮点型、字符串、日期时间、二进制


整数数据类型
类型        大小   范围(有符号)                                         范围(无符号)                   用途
tinyInt       1字节   (-128,127)                                                 (0,255)                           小整数值
smallInt   2字节   (-32 768,32 767)                                         (0,65 535)                   大整数值
mediumInt  3字节   (-8 388 608,8 388 607)                                 (0,16 777 215)                   大整数值
int       4字节   (-2 147 483 648,2 147 483 647)                         (0,4 294 967 295)                   大整数值
bigInt       8字节   (-9 233 372 036 854 775 808,9 223 372 036 854 775 807)   (0,18 446 744 073 709 551 615)   极大整数值


浮点数据类型
类型            大小    精度       用途
float            4字节    7位小数       单精度浮点数
double            8字节    15位小数   双精度浮点数
decimal(M,D)    17字节    30位小数   小数值

DECIMAL(M,D) M 表示精度,数据的总长度,D 表示标度,小数点后的长度,M必须大于D
decimal(5,2) 表示 保留5位数,保留小数点2位数, 例如存储小数120.3434时,存入数据库为120.34


字符串数据类型
类型          范围            用途
char(n)     0-255            定长字符串
varchar(n)  0-65535             变长字符串
tinytext      0-255            短文本字符串
text          0-65 535            长文本数据
mediumtext    0-16 777 215    中等长度文本数据
longtext      0-4 294 967 295    极大文本数据

char(n) 表示定长长度
varchar(n)表示变成长度
当我们存入abc三个字符时,char(5)实际占用5个字符, 而varchar(5)实际只占用3个字符


时间日期数据类型
类型        大小    格式                                       用途
date        3字节   YYYY-MM-DD
(2000-10-10)                   日期值
time        3字节   HH:MM:SS
(12:10:05)                         时间值或持续时间
year        1字节   YYYY
(2000)                                 年份值
datetime    8字节   YYYY-MM-DD HH:MM:SS
(2000-10-10 12:10:05)   混合日期和时间值
timestamp   4字节   YYYYMMDD HHMMSS                            混合日期和时间值,时间戳


二进制数据类型
类型         大小                  用途
tinyblob     0-255字节             不超过 255 个字符的二进制字符串
blob         0-65 535字节          二进制形式的长文本数据
mediumblob   0-16 777 215字节      二进制形式的中等长度文本数据
longblob     0-4 294 967 295字节   二进制形式的极大文本数据

原文地址:https://www.cnblogs.com/snzd9958/p/9769115.html