发表于: 2017-10-28 22:47:18
2 732
今天完成的内容:
继续学习了mysql语句,包括:
order by语句,排序语句,默认升序,降序是order by column_name desc,通常情况下不对中文的数据进行排序,一般都是数字和字母排序
like 和% _ 使用搭配,例如:where name like '%王%';查询名字中带王字的数据;where name like '王%';查询名字中王字开头的数据
group by和count,sum(求和),AVG(求平均数)等语句的搭配使用:如select column_name,count(*) from table_name group by column_name 查询的结果是以column分组并统计每个分组的出现次数
等值连接: 左连接:
右连接:
等值连接:select column_name,column_name from table_name1,table_name2 from table_name1 join table_name2 on table_name1.column_name = table_name2.column_name 就是查询on后面的两个column是否有匹配,有的话就返回关键字信息
左连接:SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
返回左边表所有的行,即使右边没有
右连接:与左连接结果相反
全连接: SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
返回两张表所有的列
is null和is not null:相当于=null和!=Null但是查询语句中只能使用is null或者is not null,查询表中为空或不为空的数据
alter命令,修改数据表名或者数据表字段
1:删除列
ALTER TABLE 【表名字】 DROP 【列名称】
2:增加列
ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL COMMENT '注释说明'
3:重命名列
ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT NOT NULL COMMENT '注释说明'
4:重命名表
ALTER TABLE 【表名字】 RENAME 【表新名字】
还了解到自增是可以设置每次自增数值的,具体格式为 id bigint auto_increment=10;即设置id每次自增加10
明白了索引一般是把where后面的条件作为索引,把索引也做成一张有顺序的表,并将索引表与数据表连接起来,当查询时,先从有序的索引中查询再将索引与数据表中的数据对应取出,大大减少了查询表时间,但是也会占用更多
ALTER table tableName ADD INDEX indexName(columnName) 添加索引
CREATE INDEX indexName ON mytable(username(length)); 创建索引
DROP INDEX [indexName] ON mytable; 删除索引
了解了一下外键,一个外键指向另一个表的主键:FOREIGN KEY (column_name) REFERENCES table_name(column_name),撤销外键ALTER TABLE Orders DROP FOREIGN KEY column_name
default,设置默认值 ,百度说可以通过函数设置自动获取日期默认值,自己没搞出来,有空再试试,不知道这个实际应用中时间的默认值是通过java实现还是数据库实现。
还去了解了一下数据库注入漏洞。
还去了解了一下jdbc,看着感觉脑壳疼。
明天计划:搞明白maven,在eclipse和IDEA上都弄弄maven;
遇到的问题:百度知识感觉比较零碎,尤其是想sql语句和用法这种庞杂灵活琐碎的东西,,感觉不够系统。也不容易记住,可能后面用起来还需要查资料才行,多用用可能才能完全掌握。
收货:更多的mysql玩儿法,还了解到linux和windows在mysql中大小写的问题,这个后期操作还需要注意一下,尽量都统一。
评论