Mysql基本入门

mysql入门

mysql与sql指令
  1. 参考文献:http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#c1

  2. Mac上安装

    $ brew install mysql
    $ mysql server start 
    $ mysql.server stop
    如果mysql server 无法启动的话,可以使用:
    $ mysqld 
    $ mysql
    
    配置mysql
    启动mysql
    $ mysqld  //改命令可以直接启动mysql
    $ mysql.server start 该命令也可以直接启动mysql
    启动mysql命令行,该命令启动mysql后直接进入mysql命令行模式
    若要进入该模式,必须先启动mysql
    $ mysql 
    //
    MySQL服务器启动错误 'The server quit without updating PID file'
    http://pein0119.github.io/2015/03/25/MySQL%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%AF%E5%8A%A8%E9%94%99%E8%AF%AF-The-server-quit-without-updating-PID-file/
    遇到该问题,我是使用这一条解决的:
    1.我通过检查我的旧mac发现/usr/local/var/mysql/的所有者是xxx
    2.但是启动报错的那台mac检查发现/usr/local/var/mysql/的所有者是root
    3.于是执行 sudo chown -R yxt /usr/local/var/mysql/  ytx为本台mac的用户名。
    于是这个纠结了大半年的问题终于迎刃而解。
    
    执行mysqld后:
    
    .....
    2016-11-12 21:29:00 33202 [Note]   - '::' resolves to '::';
    2016-11-12 21:29:00 33202 [Note] Server socket created on IP: '::'.
    2016-11-12 21:29:00 33202 [Note] Event Scheduler: Loaded 0 events
    2016-11-12 21:29:00 33202 [Note] mysqld: ready for connections.
    Version: '5.6.27'  socket: '/tmp/mysql.sock'  port: 3306  Homebrew
    
    这段运行是多么优雅啊!
    
    所以让我再次认识到服务器编程,除了是路径之外,还是权限!是路径+权限。
    使用mysql.server start 启动
    
  3. 安装好之后Mac上的一些配置

    1. mysql启动
    $ sudo mysqld #先启动mysqld
    $ sudo mysql #启动mysql
    
    2.mysql 安装路径(这里安装了mysql的全部数据库)
    /usr/local/var/mysql
    
    3. 寻找mysql配置文件路径
    ➜  ~ mysql --help | grep my.cnf 
                          order of preference, my.cnf, $MYSQL_TCP_PORT,
    /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf 
    
    4.
    
  4. 使用Mysql数据库

    $ mysql -D xxx(数据库名) -h hostxx -u 用户名 -p 
    $ use xxx数据库名
    
  5. SQL

    1. 建库
    CREATE DATABASE test;
    
    2. 建表
    CREATE TABLE `cat_diary` (
    ) COMMENT '日记列表'
    
    VARCHAR 可存储65532字节大小,长文
    CHAR 
    NOT NULL (非空也占空间) if null
    TINYINT(1) 布尔类型,0,1
    AUTO_INCREMENT
    PRIMARY KEY 主键
    DEFAULT '' 或者0
    utf8mb4 COLLATE 允许表情符号,二者组合使用
    COMMENT 注释
    text 2M存储大小 除非长文,博文
    
    deleted  created_at updated_at 必备字段
     
    3.建索引 INDEX
    CREATE INDEX idx_cat_dairy_comment_cat_diary_id_user_id_parent_id ON cat_diary_comment(cat_diary_id, user_id, parent_comment_id);
    
    索引类型:主键索引,unic索引
    (索引写入的时候慢,读操作快) 一张表不要超过五个
    索引失效:NULL判断会失效,具体有九种场景索引会失效,尽量避免
    
    where 和 groupby 后的字段一般要建立索引
    
    4. 数据库权限管理表,会去掉delete,防止物理删除
    6. `cat_proverb` 数据库引号,保留关键字,需要引号 
    7. 导入数据库
    source xxxpath
    8. 导出数据库
    mysqldump -uroot -p dbname tablename > xxx.sql
    9.数据库命令
      更新  UPDATE user SET deleted = 1 WHERE id=99
      插入  INSERT user (id, type) VALUES ()
      查询 
             去重 group by 
              left join 左关联  right join右关联 full join 
              SELECT * FROM cat c LEFT JOIN user u ON c.user_id=u.id
              求和 sum SELECT sum(fishty) from cat_diary 
             计数 count 
             条件查询 where  != <> =  AND OR NOT 尽量在字段中不要出现NULL
             模糊查询、包含 like.  like '%豆%' 关联所有有豆的数据, '%豆' 以豆结尾,
             右模糊会导致关联失效。
             搜索联想一般不是查询数据库,而是用搜索引擎
             
      子查询(效率较慢)
    10. top N 前N条数据 limit 同理
    11. 
    
sql实战
  1. sql实战训练参考:http://www.runoob.com/mysql/mysql-insert-query.html
  1. 实战之查询user表

你可能感兴趣的:(Mysql基本入门)