MySQL基础操作(一)

1. 基础概念

存储引擎

InnoDB是一个可靠地事务处理引擎,不支持全文本搜索
MyISAM是一个性能极高的引擎,支持全文本搜索,不支持事务处理

数据库-database

保存有组织的数据的容器(通常是一个文件或一组文件)

表-table

特定类型数据的结构化清单

模式-schema

关于数据库和表的布局及特性的信息

列-column

特定类型数据的结构化清单

数据类型-datatype

所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据

行-row

表中的一个记录

主键-primary key

一列或一组列,其值能够唯一区分表中的每个行

2. MySQL命令

创建库

1
CREATE DATABASE TEST_001;

切换数据库

1
use db_name;

显示所有的数据库

1
show databases;

显示数据库中所有的表

1
2
use db_name;
show tables;

显示某一个表的结构信息

1
2
3
show columns from table_name;
or
desc table_name;

显示表的创建sql

1
2
show create database db_name;
show create table table_name;

其它命令

1
2
3
show status  服务器状态信息
show grants 显示授权用户
show errors/show warnings 显示服务器错误或警告信息

3. MySQL查询命令

MySQL子句顺序:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT

查询单个列,多列,全部列,去重

1
2
3
4
SELECT col FROM table;
SELECT col1, col2 FROM table;
SELECT * FROM table;
SELECT DISTINCT col FROM table;

限定查询条数

1
2
SELECT col1 FROM table LIMIT 5; 前5条数据
SELECT col1 FROM table LIMIT 5,5; 从第5条开始,取5条数据

排序

DESC:倒序
ASC:升序

1
2
SELECT col1 FROM table ORDER BY col1 默认升序
SELECT col1 FROM table ORDER BY col1,col2 默认升序

WHERE,范围,空值检查

1
2
3
SELECT col1, col2 FROM table WHERE col1 = 'hello';
SELECT col1, col2 FROM table WHERE col2 BETWEEN 5 AND 10;
SELECT col1, col2 FROM table WHERE col3 IS NULL;

AND、OR

优先级 and 大于 or, 先处理的and, 当两者都存在时,需要使用括号指定优先级

1
2
3
SELECT col1, col2 FROM table WHERE col1 = 'hello' AND col2=3; 两个条件都要符合
SELECT col1, col2 FROM table WHERE col1 = 'hello' OR col2=3; 只要一个条件符合
select prod_id from products where (prod_price < 2.5 or vend_id = 1000) and prod_price > 1;

IN,NOT IN

1
2
SELECT col1 FROM table WHERE col1 IN (1,100); 查询col1为1,100的数据
SELECT col1 FROM table WHERE col1 NOT IN (1,100); 查询col1不为1,100的数据

LIKE

1
2
3
4
5
多个匹配
SELECT col1 FROM table WHERE col1 LIKE ‘hell%’ ; 匹配以hell开头字符串
SELECT col1 FROM table WHERE col1 LIKE ‘%hell’; 匹配以hell结尾字符串
单个匹配
SELECT col1 FROM table WHERE col1 LIKE ‘_hell’; hell前有一个字符

2016!剩下一半该好好计划下

Quick Start

1
2
3
 class Hello{
System.out.print("world")
}

    转眼间就已经到了六月,回想去年的六月,那时青春的我们还在憧憬什么呢,还是在那无休止的加班中度过。曾经我们都认为那是永远,会那样一直的下去。
    其实前面都是废话啦,2016年已过去一半啦,真是是过去一半啦,今天是六月四号。回顾前半年发生了什么呢?好吧,感觉是一路的迷茫,都不知道做了什么。

一、上半年的事情

  1. 离开工作了两年之久的超级课程表。
  2. 加入了梦寐以求的阿里巴巴。

    其它事情好像真是想不起来啦。感觉好想做过,确实在脑海中一片模糊。人老是不是特别的健忘啦。

二、下半年计划

    上半年就这样过去啦,但是我也不能找回来,就好好制定下年应该要做的事情吧,就是所谓的KPI。
    目标:希望成为一个知识点覆盖面比较全的开发者。包含java本身,网络,操作系统,数据库,shell脚本。
    java:基础语法,虚拟机,调优。掌握基本线上问题排查的一般步骤。
数据库:mysql和redis的调优等高级技巧。
操作系统:主要是linux系统,掌握centos的使用,本地搭一台相关服务器。
网络:深入掌握各种协议,tcp,udp,http等,深入掌握抓包技巧,网络抓包分析服务器的数据情况。
找到一门其他的技术,搜索或者大数据开发。
注意知识的积累,勤写博客