发表于: 2018-03-25 20:34:37
2 415
今天完成的事情:
1.学习并练习SQL语句
主要是insert,delete,update语句,还有delect查询语句,聚合函数,分组查询
主要是delect查询语句配合上where,比较运算符和逻辑运算符还有各种各种聚合函授的查询
while条件的种类如下:
比较运算符 | > < <= >= = <> | 大于、小于、大于(小于)等于、不等于 |
BETWEEN ...AND... | 显示在某一区间的值(含头含尾) | |
IN(set) | 显示在in列表中的值,例:in(100,200) | |
LIKE 通配符 | 模糊查询,Like语句中有两个通配符: % 用来匹配多个字符;例first_name like ‘a%’; _ 用来匹配一个字符。例first_name like ‘a_’; | |
IS NULL | 判断是否为空 is null; 判断为空 is not null; 判断不为空 | |
逻辑运算符 | and | 多个条件同时成立 |
or | 多个条件任一成立 | |
not | 不成立,例:where not(salary>100); |
聚合
count:统计指定列部位null的记录行数
distinct表示不计算重复值,用(*)表示统计该表的记录行数
sum:指定列的数值和,如果指定数据类型不是数值类型,那么计算结果为0;
max:指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
min:指令列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
avg:指定列的平均值,如果指定数据类型不是数值类型,那么计算结果为0;
select sun(s_num) from student
分组查询
group by 被分组的列名
必须跟随聚合函数
select 查询的时候,被分组的列必须,出现在select选择列的后边
select sun(s_num),s_name from student1 group by s_name
使用count()函数时,如果指定列有数值为null则会略过
明天计划的事情:
1.学习SQL部分的多表查询,索引
2.开始学习JDBC部分
遇到问题:
1.这种单语句一遍遍的练习很枯燥啊。。。
收获:
1.DOS操作数据乱码解决
dos命令行操作中文时,如果报错
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'username' at row 1
原因:因为mysql的客户端编码的问题我们的是utf8,而系统的cmd窗口编码是gbk
解决方案(临时解决方案):修改mysql客户端编码。
show variables like 'character%'; 查看所有mysql的编码
在图中与客户端有关的编码设置:
client connetion result 和客户端相关
database server system 和服务器端相关
将客户端编码修改为gbk.
set character_set_results=gbk; / set names gbk;
以上操作,只针对当前窗口有效果,如果关闭了服务器便失效。如果想要永久修改,通过以下方式:
在mysql安装目录下有my.ini文件
default-character-set=gbk 客户端编码设置
character-set-server=utf8 服务器端编码设置
修改完成配置文件,重启服务
2.对SQL语句更加的熟悉和熟练
把MySQL和JAVA对应起来看
数据表——类
字段名(列名)——类的属性
每行的数据——对象
评论