code: func (p *Parser) parseCreateDatabase(ctx *parseCtx) (model.Database, error) {
  	if t := ctx.next(); t.Type != DATABASE {
  		return nil, errors.New(`expected DATABASE`)
  	}
  
  	ctx.skipWhiteSpaces()
  
  	var notexists bool
  	if ctx.peek().Type == IF {
  		ctx.advance()
  		if _, err := p.parseIdents(ctx, NOT, EXISTS); err != nil {
  			return nil, err
  		}
  		notexists = true
  	}
  
  	ctx.skipWhiteSpaces()
  
  	var database model.Database
  	switch t := ctx.next(); t.Type {
  	case IDENT, BACKTICK_IDENT:
  		database = model.NewDatabase(t.Value)
  	default:
  		return nil, newParseError(ctx, t, "expected IDENT, BACKTICK_IDENT")
  	}
  
  	database.SetIfNotExists(notexists)
  	p.eol(ctx)
  	return database, nil
  }
docs: // https://dev.mysql.com/doc/refman/5.5/en/create-database.html
  // TODO: charset, collation